Search in sources :

Example 1 with Where

use of org.opencastproject.assetmanager.impl.query.DeleteQueryContribution.Where in project opencast by opencast.

the class PropertyPredicates method mkWhereDelete.

public static Where mkWhereDelete(final Opt<String> namespace, final Opt<String> propertyName, final Fn<QPropertyDto, Opt<BooleanExpression>> mkValueExpression) {
    final Opt<BooleanExpression> valueExpression = mkValueExpression.apply(Q_PROPERTY);
    final BooleanExpression propertyPredicate = (namespace.isSome() ? Q_PROPERTY.namespace.eq(namespace.get()) : // The isNotNull predicate prevents this.
    Q_PROPERTY.namespace.isNotNull()).and(propertyName.isSome() ? Q_PROPERTY.propertyName.eq(propertyName.get()) : null).and(valueExpression.isSome() ? valueExpression.get() : null);
    // 
    return new Where() {

        @Override
        public BooleanExpression fromSnapshot(QSnapshotDto e) {
            return new JPASubQuery().from(Q_PROPERTY).where(e.mediaPackageId.eq(Q_PROPERTY.mediaPackageId).and(propertyPredicate)).exists();
        }

        @Override
        public BooleanExpression fromProperty(QPropertyDto p) {
            return p.mediaPackageId.in(new JPASubQuery().from(p).where(propertyPredicate).distinct().list(p.mediaPackageId));
        }
    };
}
Also used : QPropertyDto(org.opencastproject.assetmanager.impl.persistence.QPropertyDto) BooleanExpression(com.mysema.query.types.expr.BooleanExpression) JPASubQuery(com.mysema.query.jpa.JPASubQuery) QSnapshotDto(org.opencastproject.assetmanager.impl.persistence.QSnapshotDto) Where(org.opencastproject.assetmanager.impl.query.DeleteQueryContribution.Where)

Aggregations

JPASubQuery (com.mysema.query.jpa.JPASubQuery)1 BooleanExpression (com.mysema.query.types.expr.BooleanExpression)1 QPropertyDto (org.opencastproject.assetmanager.impl.persistence.QPropertyDto)1 QSnapshotDto (org.opencastproject.assetmanager.impl.persistence.QSnapshotDto)1 Where (org.opencastproject.assetmanager.impl.query.DeleteQueryContribution.Where)1