@Override public long count(QueryMetadata metadata, Map<Expression<?>, Iterable<?>> iterables) { if (metadata.getJoins().size() == 1) { return evaluateSingleSource(metadata, iterables, true).size(); } else { return evaluateMultipleSources(metadata, iterables, true).size(); } }
@Override public <T> List<T> list(QueryMetadata metadata, Map<Expression<?>, Iterable<?>> iterables, Expression<T> projection) { if (metadata.getJoins().size() == 1) { return evaluateSingleSource(metadata, iterables, false); } else { return evaluateMultipleSources(metadata, iterables, false); } }
public T fetch(){ List<JoinExpression> joins = getMetadata().getJoins(); joins.get(joins.size()-1).addFlag(FETCH); return getSelf(); }
public T fetchAll(){ List<JoinExpression> joins = getMetadata().getJoins(); joins.get(joins.size()-1).addFlag(FETCH_ALL_PROPERTIES); return getSelf(); }
@Override public BooleanExpression exists() { if (queryMixin.getMetadata().getJoins().isEmpty()) { throw new IllegalArgumentException("No sources given"); } Expression<?> expr = queryMixin.getMetadata().getJoins().get(0).getTarget(); if (expr instanceof Operation && ((Operation)expr).getOperator() == Ops.ALIAS) { expr = ((Operation)expr).getArg(1); } return unique(expr).exists(); }
@Override public String toString() { if (!getMetadata().getJoins().isEmpty()) { SQLSerializer serializer = serialize(false); return serializer.toString().trim(); } else { return super.toString(); } }
@Nullable protected Predicate createFilter(QueryMetadata metadata) { Predicate filter; if (!metadata.getJoins().isEmpty()) { filter = ExpressionUtils.allOf(metadata.getWhere(), createJoinFilter(metadata)); } else { filter = metadata.getWhere(); } return filter; }
@Override public String toString() { if (!queryMixin.getMetadata().getJoins().isEmpty()) { Expression<?> source = queryMixin.getMetadata().getJoins().get(0).getTarget(); JDOQLSerializer serializer = new JDOQLSerializer(JDOQLTemplates.DEFAULT, source); serializer.setStrict(false); serializer.serialize(queryMixin.getMetadata(), false, false); return serializer.toString().trim(); } else { return super.toString(); } }
private String buildQueryString(boolean forCountRow) { if (queryMixin.getMetadata().getJoins().isEmpty()) { throw new IllegalArgumentException("No joins given"); } HibernateSQLSerializer serializer = new HibernateSQLSerializer(sqlTemplates); serializer.serialize(queryMixin.getMetadata(), forCountRow); constants = serializer.getConstantToLabel(); // entityPaths = serializer.getEntityPaths(); return serializer.toString(); }
public String toString(){ if (!queryMixin.getMetadata().getJoins().isEmpty()){ HQLSerializer serializer = new HQLSerializer(JPQLTemplates.DEFAULT); serializer.serialize(queryMixin.getMetadata(), false, null); return serializer.toString().trim(); }else{ return super.toString(); } }
private String buildQueryString(boolean forCountRow) { if (queryMixin.getMetadata().getJoins().isEmpty()) { throw new IllegalArgumentException("No joins given"); } HibernateSQLSerializer serializer = new HibernateSQLSerializer(sqlTemplates); serializer.serialize(queryMixin.getMetadata(), forCountRow); constants = serializer.getConstantToLabel(); entityPaths = serializer.getEntityPaths(); return serializer.toString(); }
@SuppressWarnings("unchecked") private <RT> Union<RT> innerUnion(SubQueryExpression<?>... sq) { queryMixin.getMetadata().setValidate(false); if (!queryMixin.getMetadata().getJoins().isEmpty()) { throw new IllegalArgumentException("Don't mix union and from"); } this.union = UnionUtils.union(sq, unionAll); this.firstUnionSubQuery = sq[0]; return new UnionImpl<Q ,RT>((Q)this, sq[0].getMetadata().getProjection()); }
@SuppressWarnings("unchecked") @Override public NumberSubQuery<Long> count() { Expression<?> target = queryMixin.getMetadata().getJoins().get(0).getTarget(); if (target instanceof Operation && ((Operation)target).getOperator() == Ops.ALIAS) { target = ((Operation)target).getArg(1); } return unique(NumberOperation.create(Long.class, Ops.AggOps.COUNT_AGG, target)); }
@Override public String toString() { if (!queryMixin.getMetadata().getJoins().isEmpty()) { Expression<?> source = getSource(); JDOQLSerializer serializer = new JDOQLSerializer(getTemplates(), source); serializer.serialize(queryMixin.getMetadata(), false, false); return serializer.toString().trim(); } else { return super.toString(); } }
public void serializeForUpdate(QueryMetadata md) { append(UPDATE); handleJoinTarget(md.getJoins().get(0)); append(SET); handle(COMMA, md.getProjection()); if (md.getWhere() != null) { append(WHERE).handle(md.getWhere()); } }
@Test public void OrderBy_Embeddable_Collection() { QBookVersion bookVersion = QBookVersion.bookVersion; QBookMark bookMark = new QBookMark("bookVersion_definition_bookMarks"); mixin.from(bookVersion); mixin.orderBy(bookVersion.definition.bookMarks.any().comment.asc()); QueryMetadata md = mixin.getMetadata(); assertEquals(Arrays.asList(new JoinExpression(JoinType.DEFAULT, bookVersion)), md.getJoins()); assertEquals(Arrays.asList(new StringPath(bookVersion.definition.bookMarks, "comment").asc()), md.getOrderBy()); }
@Test public void Clone() { QCat cat = QCat.cat; HibernateQuery query = query().from(cat).where(cat.name.isNotNull()); HibernateQuery query2 = query.clone(session); assertEquals(query.getMetadata().getJoins(), query2.getMetadata().getJoins()); assertEquals(query.getMetadata().getWhere(), query2.getMetadata().getWhere()); query2.list(cat); }
@Test public void Clone() { QCat cat = QCat.cat; JPAQuery query = query().from(cat).where(cat.name.isNotNull()); JPAQuery query2 = query.clone(entityManager); assertEquals(query.getMetadata().getJoins(), query2.getMetadata().getJoins()); assertEquals(query.getMetadata().getWhere(), query2.getMetadata().getWhere()); query2.list(cat); }
@Test public void Clone() { SAnimal cat = new SAnimal("cat"); HibernateSQLQuery query = query().from(cat).where(cat.name.isNotNull()); HibernateSQLQuery query2 = query.clone(session); assertEquals(query.getMetadata().getJoins(), query2.getMetadata().getJoins()); assertEquals(query.getMetadata().getWhere(), query2.getMetadata().getWhere()); //query2.list(cat.id); }
@Test public void Clone() { SAnimal cat = new SAnimal("cat"); JPASQLQuery query = query().from(cat).where(cat.name.isNotNull()); JPASQLQuery query2 = query.clone(entityManager); assertEquals(query.getMetadata().getJoins(), query2.getMetadata().getJoins()); assertEquals(query.getMetadata().getWhere(), query2.getMetadata().getWhere()); query2.list(cat.id); }