@Override public JoinOnBuilder<CorrelationQueryBuilder> correlate(Class<?> entityClass) { if (correlationRoot != null) { throw new IllegalArgumentException("Can not correlate with multiple entity classes!"); } JoinOnBuilder<CorrelationQueryBuilder> correlationBuilder; if (batchSize > 1) { if (correlationBasisEntity != null) { criteriaBuilder.fromIdentifiableValues(correlationBasisEntity, correlationKeyAlias, batchSize); } else { criteriaBuilder.fromValues(correlationBasisType, correlationKeyAlias, batchSize); } correlationBuilder = (JoinOnBuilder<CorrelationQueryBuilder>) (JoinOnBuilder<?>) criteriaBuilder.innerJoinOn(entityClass, correlationAlias); } else { if (innerJoin) { correlationBuilder = (JoinOnBuilder<CorrelationQueryBuilder>) (JoinOnBuilder<?>) criteriaBuilder.innerJoinOn(entityClass, correlationAlias); } else { criteriaBuilder.from(entityClass, correlationAlias); correlationBuilder = criteriaBuilder.getService(JoinOnBuilder.class); } } this.correlationRoot = correlationResult; return correlationBuilder; }
@Override public JoinOnBuilder<CorrelationQueryBuilder> correlate(EntityType<?> entityType) { if (correlationRoot != null) { throw new IllegalArgumentException("Can not correlate with multiple entity classes!"); } JoinOnBuilder<CorrelationQueryBuilder> correlationBuilder; if (batchSize > 1) { if (correlationBasisEntity != null) { criteriaBuilder.fromIdentifiableValues(correlationBasisEntity, correlationKeyAlias, batchSize); } else { criteriaBuilder.fromValues(correlationBasisType, correlationKeyAlias, batchSize); } correlationBuilder = (JoinOnBuilder<CorrelationQueryBuilder>) (JoinOnBuilder<?>) criteriaBuilder.innerJoinOn(entityType, correlationAlias); } else { if (innerJoin) { correlationBuilder = (JoinOnBuilder<CorrelationQueryBuilder>) (JoinOnBuilder<?>) criteriaBuilder.innerJoinOn(entityType, correlationAlias); } else { criteriaBuilder.from(entityType, correlationAlias); correlationBuilder = criteriaBuilder.getService(JoinOnBuilder.class); } } this.correlationRoot = correlationResult; return correlationBuilder; } }
public void addBatchPredicate(FullQueryBuilder<?, ?> criteriaBuilder) { if (viewRootExpression == CORRELATION_VIEW_ROOT_ALIAS) { criteriaBuilder.innerJoinOn(originalViewRootExpression, viewRootEntityType, CORRELATION_VIEW_ROOT_ALIAS) .on(originalViewRootExpression + "." + viewRootIdPath).eqExpression(CORRELATION_VIEW_ROOT_ALIAS + "." + viewRootIdPath) .end(); } }
@Override public void addBatchPredicate(FullQueryBuilder<?, ?> criteriaBuilder) { if (viewRootExpression == CORRELATION_EMBEDDING_VIEW_ALIAS) { criteriaBuilder.innerJoinOn(originalViewRootExpression, viewRootEntityType, CORRELATION_EMBEDDING_VIEW_ALIAS) .on(originalViewRootExpression + "." + viewRootIdPath).eqExpression(CORRELATION_EMBEDDING_VIEW_ALIAS + "." + viewRootIdPath) .end(); } }