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));
}
};
}
Aggregations