diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/AbstractHQLSubQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/AbstractHQLSubQuery.java index ab195abf6..1b2c7ada1 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/AbstractHQLSubQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/AbstractHQLSubQuery.java @@ -143,7 +143,7 @@ public class AbstractHQLSubQuery> extends Detac public String toString(){ if (!queryMixin.getMetadata().getJoins().isEmpty()){ - HQLSerializer serializer = new HQLSerializer(HQLTemplates.DEFAULT); + HQLSerializer serializer = new HQLSerializer(JPQLTemplates.DEFAULT); serializer.serialize(queryMixin.getMetadata(), false, null); return serializer.toString().trim(); }else{ diff --git a/querydsl-hql/src/test/java/com/mysema/query/EclipseLinkTemplates.java b/querydsl-hql/src/main/java/com/mysema/query/hql/EclipseLinkTemplates.java similarity index 69% rename from querydsl-hql/src/test/java/com/mysema/query/EclipseLinkTemplates.java rename to querydsl-hql/src/main/java/com/mysema/query/hql/EclipseLinkTemplates.java index 4973f9e9a..c14385226 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/EclipseLinkTemplates.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/EclipseLinkTemplates.java @@ -3,11 +3,8 @@ * All rights reserved. * */ -package com.mysema.query; +package com.mysema.query.hql; -import com.mysema.query.hql.HQLTemplates; -import com.mysema.query.types.Constant; -import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; /** @@ -16,18 +13,15 @@ import com.mysema.query.types.Ops; * @author tiwe * */ -public class EclipseLinkTemplates extends HQLTemplates{ +public class EclipseLinkTemplates extends JPQLTemplates{ - public static final EclipseLinkTemplates DEFAULT = new EclipseLinkTemplates(); + public static final JPQLTemplates DEFAULT = new EclipseLinkTemplates(); // TODO : indexed list access // TODO : cast protected EclipseLinkTemplates() { - // JPQL standard - add(Ops.INSTANCE_OF, "type({0}) = {1}"); - // LIKE replacements add(Ops.STRING_CONTAINS, "locate({1},{0}) > 0"); add(Ops.STRING_CONTAINS_IC, "locate({1l},{0l}) > 0"); @@ -50,17 +44,5 @@ public class EclipseLinkTemplates extends HQLTemplates{ } - public boolean wrapElements(Operator operator){ - return false; - } - - public boolean wrapConstant(Constant expr) { - return false; - } - - public boolean isTypeAsString() { - // TODO : get rid of this when Hibernate supports type(alias) - return false; - } } diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java index 0538c79a9..8d7545e77 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryBase.java @@ -27,9 +27,9 @@ public abstract class HQLQueryBase> extends Projectabl private final HQLQueryMixin queryMixin; - private final HQLTemplates templates; + private final JPQLTemplates templates; - protected HQLTemplates getTemplates(){ + protected JPQLTemplates getTemplates(){ return templates; } @@ -38,7 +38,7 @@ public abstract class HQLQueryBase> extends Projectabl } @SuppressWarnings("unchecked") - public HQLQueryBase(QueryMetadata md, HQLTemplates templates) { + public HQLQueryBase(QueryMetadata md, JPQLTemplates templates) { super(new HQLQueryMixin(md)); super.queryMixin.setSelf((Q) this); this.queryMixin = (HQLQueryMixin) super.queryMixin; diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLSerializer.java b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLSerializer.java index 5e5c4e98d..5330ab112 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLSerializer.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLSerializer.java @@ -77,7 +77,7 @@ public class HQLSerializer extends SerializerBase { private static final Map joinTypes = new HashMap(); - private final HQLTemplates templates; + private final JPQLTemplates templates; static{ joinTypes.put(JoinType.DEFAULT, COMMA); @@ -89,7 +89,7 @@ public class HQLSerializer extends SerializerBase { private boolean wrapElements = false; - public HQLSerializer(HQLTemplates templates) { + public HQLSerializer(JPQLTemplates templates) { super(templates); this.templates = templates; } @@ -303,7 +303,7 @@ public class HQLSerializer extends SerializerBase { if (operator.equals(Ops.IN)){ if (args.get(1) instanceof Path){ - super.visitOperation(type, HQLTemplates.MEMBER_OF, args); + super.visitOperation(type, JPQLTemplates.MEMBER_OF, args); }else{ super.visitOperation(type, operator, args); } @@ -326,7 +326,7 @@ public class HQLSerializer extends SerializerBase { } else if (operator.equals(Ops.NUMCAST)) { Class targetType = (Class) ((Constant) args.get(1)).getConstant(); String typeName = targetType.getSimpleName().toLowerCase(Locale.ENGLISH); - visitOperation(targetType, HQLTemplates.CAST, Arrays.>asList(args.get(0), ExprConst.create(typeName))); + visitOperation(targetType, JPQLTemplates.CAST, Arrays.>asList(args.get(0), ExprConst.create(typeName))); } else if (operator.equals(Ops.EXISTS) && args.get(0) instanceof SubQuery){ SubQuery subQuery = (SubQuery) args.get(0); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLTemplates.java b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLTemplates.java index 756532a26..e94207730 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLTemplates.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLTemplates.java @@ -1,142 +1,68 @@ -/* - * Copyright (c) 2010 Mysema Ltd. - * All rights reserved. - * - */ -package com.mysema.query.hql; - -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -import com.mysema.query.types.Constant; -import com.mysema.query.types.Operator; -import com.mysema.query.types.OperatorImpl; -import com.mysema.query.types.Ops; -import com.mysema.query.types.PathType; -import com.mysema.query.types.Templates; - -/** - * HQLTemplates extends Templates to provide operator patterns for HQL - * serialization - * - * @author tiwe - * @version $Id$ - */ -public class HQLTemplates extends Templates { - - public static final Operator CAST = new OperatorImpl(Object.class, Object.class); - - public static final Operator MEMBER_OF = new OperatorImpl(Object.class, Object.class); - - public static final HQLTemplates DEFAULT = new HQLTemplates(); - - private final List> wrapElements = Arrays.> asList( - Ops.QuantOps.ALL, - Ops.QuantOps.ANY, - Ops.QuantOps.AVG_IN_COL, - Ops.EXISTS); - - protected HQLTemplates() { - //CHECKSTYLE:OFF - // boolean - add(Ops.AND, "{0} and {1}", 36); - add(Ops.NOT, "not {0}", 3); - add(Ops.OR, "{0} or {1}", 38); - add(Ops.XNOR, "{0} xnor {1}", 39); - add(Ops.XOR, "{0} xor {1}", 39); - - // comparison - add(Ops.BETWEEN, "{0} between {1} and {2}", 30); - - // numeric - add(Ops.MathOps.SQRT, "sqrt({0})"); - - // various - add(Ops.NE_PRIMITIVE, "{0} <> {1}", 25); - add(Ops.NE_OBJECT, "{0} <> {1}", 25); - add(Ops.IS_NULL, "{0} is null", 26); - add(Ops.IS_NOT_NULL, "{0} is not null", 26); - - // collection - add(MEMBER_OF, "{0} member of {1}"); - - add(Ops.IN, "{0} in {1}"); - add(Ops.COL_IS_EMPTY, "{0} is empty"); - add(Ops.COL_SIZE, "size({0})"); - add(Ops.ARRAY_SIZE, "size({0})"); - - // string - add(Ops.LIKE, "{0} like {1}",1); - add(Ops.CONCAT, "concat({0},{1})",0); - add(Ops.MATCHES, "{0} like {1}", 27); // TODO : support real regexes - add(Ops.LOWER, "lower({0})"); - add(Ops.SUBSTR_1ARG, "substring({0},{1}+1)"); - add(Ops.SUBSTR_2ARGS, "substring({0},{1}+1,{2})"); - add(Ops.TRIM, "trim({0})"); - add(Ops.UPPER, "upper({0})"); - add(Ops.EQ_IGNORE_CASE, "{0l} = {1l}"); - add(Ops.CHAR_AT, "cast(substring({0},{1}+1,1) as char)"); - add(Ops.STRING_IS_EMPTY, "length({0}) = 0"); - - add(Ops.STRING_CONTAINS, "{0} like {%1%}"); - add(Ops.STRING_CONTAINS_IC, "{0l} like {%%1%%}"); - add(Ops.ENDS_WITH, "{0} like {%1}"); - add(Ops.ENDS_WITH_IC, "{0l} like {%%1}"); - add(Ops.STARTS_WITH, "{0} like {1%}"); - add(Ops.STARTS_WITH_IC, "{0l} like {1%%}"); - add(Ops.INDEX_OF, "locate({1},{0}) - 1"); - add(Ops.INDEX_OF_2ARGS, "locate({1},{0},{2}+1) - 1"); - - // date time - add(Ops.DateTimeOps.SYSDATE, "sysdate"); - add(Ops.DateTimeOps.CURRENT_DATE, "current_date()"); - add(Ops.DateTimeOps.CURRENT_TIME, "current_time()"); - add(Ops.DateTimeOps.CURRENT_TIMESTAMP, "current_timestamp()"); - - - // path types - for (PathType type : new PathType[] { - PathType.LISTVALUE, - PathType.MAPVALUE, - PathType.MAPVALUE_CONSTANT }) { - add(type, "{0}[{1}]"); - } - add(PathType.LISTVALUE_CONSTANT, "{0}[{1s}]"); - add(PathType.PROPERTY, "{0}.{1s}"); - add(PathType.VARIABLE, "{0s}"); - - // case for eq - add(Ops.CASE_EQ, "case {1} end"); - add(Ops.CASE_EQ_WHEN, "when {0} = {1} then {2} {3}"); - add(Ops.CASE_EQ_ELSE, "else {0}"); - - - // HQL specific - add(CAST, "cast({0} as {1s})"); - - add(Ops.DateTimeOps.MILLISECOND, "0"); // NOT supported in HQL - add(Ops.DateTimeOps.SECOND, "second({0})"); - add(Ops.DateTimeOps.MINUTE, "minute({0})"); - add(Ops.DateTimeOps.HOUR, "hour({0})"); - add(Ops.DateTimeOps.DAY_OF_MONTH, "day({0})"); - add(Ops.DateTimeOps.MONTH, "month({0})"); - add(Ops.DateTimeOps.YEAR, "year({0})"); - add(Ops.DateTimeOps.YEAR_MONTH, "year({0}) * 100 + month({0})"); - //CHECKSTYLE:ON - } - - public boolean wrapElements(Operator operator){ - return wrapElements.contains(operator); - } - - public boolean wrapConstant(Constant expr) { - Class type = expr.asExpr().getType(); - return type.isArray() || Collection.class.isAssignableFrom(type); - } - - public boolean isTypeAsString() { - return true; - } - -} +package com.mysema.query.hql; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +import com.mysema.query.types.Constant; +import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.PathType; + +/** + * HQLTemplates extends JPQLTemplates with Hibernate specific fixes + * + * @author tiwe + * + */ +public class HQLTemplates extends JPQLTemplates{ + + private static final List> wrapElements = Arrays.> asList( + Ops.QuantOps.ALL, + Ops.QuantOps.ANY, + Ops.QuantOps.AVG_IN_COL, + Ops.EXISTS); + + public static final HQLTemplates DEFAULT = new HQLTemplates(); + + protected HQLTemplates() { + //CHECKSTYLE:OFF + add(CAST, "cast({0} as {1s})"); + add(Ops.INSTANCE_OF, "{0}.class = {1}"); + add(MEMBER_OF, "{0} in elements({1})"); + + // path types + for (PathType type : new PathType[] { + PathType.LISTVALUE, + PathType.MAPVALUE, + PathType.MAPVALUE_CONSTANT }) { + add(type, "{0}[{1}]"); + } + add(PathType.LISTVALUE_CONSTANT, "{0}[{1s}]"); + + // date time + add(Ops.DateTimeOps.MILLISECOND, "0"); // NOT supported in HQL + add(Ops.DateTimeOps.SECOND, "second({0})"); + add(Ops.DateTimeOps.MINUTE, "minute({0})"); + add(Ops.DateTimeOps.HOUR, "hour({0})"); + add(Ops.DateTimeOps.DAY_OF_MONTH, "day({0})"); + add(Ops.DateTimeOps.MONTH, "month({0})"); + add(Ops.DateTimeOps.YEAR, "year({0})"); + add(Ops.DateTimeOps.YEAR_MONTH, "year({0}) * 100 + month({0})"); + //CHECKSTYLE:ON + } + + public boolean wrapElements(Operator operator){ + return wrapElements.contains(operator); + } + + public boolean wrapConstant(Constant expr) { + Class type = expr.asExpr().getType(); + return type.isArray() || Collection.class.isAssignableFrom(type); + } + + public boolean isTypeAsString() { + return true; + } + +} diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/JPQLTemplates.java b/querydsl-hql/src/main/java/com/mysema/query/hql/JPQLTemplates.java new file mode 100644 index 000000000..3597c9737 --- /dev/null +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/JPQLTemplates.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2010 Mysema Ltd. + * All rights reserved. + * + */ +package com.mysema.query.hql; + +import com.mysema.query.types.Constant; +import com.mysema.query.types.Operator; +import com.mysema.query.types.OperatorImpl; +import com.mysema.query.types.Ops; +import com.mysema.query.types.PathType; +import com.mysema.query.types.Templates; + +/** + * JPQLTemplates extends Templates to provide operator patterns for HQL + * serialization + * + * @author tiwe + * @version $Id$ + */ +public class JPQLTemplates extends Templates { + + public static final Operator CAST = new OperatorImpl(Object.class, Object.class); + + public static final Operator MEMBER_OF = new OperatorImpl(Object.class, Object.class); + + public static final JPQLTemplates DEFAULT = new JPQLTemplates(); + + protected JPQLTemplates() { + //CHECKSTYLE:OFF + // boolean + add(Ops.AND, "{0} and {1}", 36); + add(Ops.NOT, "not {0}", 3); + add(Ops.OR, "{0} or {1}", 38); + add(Ops.XNOR, "{0} xnor {1}", 39); + add(Ops.XOR, "{0} xor {1}", 39); + + // comparison + add(Ops.BETWEEN, "{0} between {1} and {2}", 30); + + // numeric + add(Ops.MathOps.SQRT, "sqrt({0})"); + + // various + add(Ops.NE_PRIMITIVE, "{0} <> {1}", 25); + add(Ops.NE_OBJECT, "{0} <> {1}", 25); + add(Ops.IS_NULL, "{0} is null", 26); + add(Ops.IS_NOT_NULL, "{0} is not null", 26); + + // collection + add(MEMBER_OF, "{0} member of {1}"); + + add(Ops.IN, "{0} in {1}"); + add(Ops.COL_IS_EMPTY, "{0} is empty"); + add(Ops.COL_SIZE, "size({0})"); + add(Ops.ARRAY_SIZE, "size({0})"); + + // string + add(Ops.LIKE, "{0} like {1}",1); + add(Ops.CONCAT, "concat({0},{1})",0); + add(Ops.MATCHES, "{0} like {1}", 27); // TODO : support real regexes + add(Ops.LOWER, "lower({0})"); + add(Ops.SUBSTR_1ARG, "substring({0},{1}+1)"); + add(Ops.SUBSTR_2ARGS, "substring({0},{1}+1,{2})"); + add(Ops.TRIM, "trim({0})"); + add(Ops.UPPER, "upper({0})"); + add(Ops.EQ_IGNORE_CASE, "{0l} = {1l}"); + add(Ops.CHAR_AT, "cast(substring({0},{1}+1,1) as char)"); + add(Ops.STRING_IS_EMPTY, "length({0}) = 0"); + + add(Ops.STRING_CONTAINS, "{0} like {%1%}"); + add(Ops.STRING_CONTAINS_IC, "{0l} like {%%1%%}"); + add(Ops.ENDS_WITH, "{0} like {%1}"); + add(Ops.ENDS_WITH_IC, "{0l} like {%%1}"); + add(Ops.STARTS_WITH, "{0} like {1%}"); + add(Ops.STARTS_WITH_IC, "{0l} like {1%%}"); + add(Ops.INDEX_OF, "locate({1},{0}) - 1"); + add(Ops.INDEX_OF_2ARGS, "locate({1},{0},{2}+1) - 1"); + + // date time + add(Ops.DateTimeOps.SYSDATE, "sysdate"); + add(Ops.DateTimeOps.CURRENT_DATE, "current_date()"); + add(Ops.DateTimeOps.CURRENT_TIME, "current_time()"); + add(Ops.DateTimeOps.CURRENT_TIMESTAMP, "current_timestamp()"); + + + // path types + add(PathType.PROPERTY, "{0}.{1s}"); + add(PathType.VARIABLE, "{0s}"); + + // case for eq + add(Ops.CASE_EQ, "case {1} end"); + add(Ops.CASE_EQ_WHEN, "when {0} = {1} then {2} {3}"); + add(Ops.CASE_EQ_ELSE, "else {0}"); + + add(Ops.INSTANCE_OF, "type({0}) = {1}"); + + //CHECKSTYLE:ON + } + + public boolean wrapElements(Operator operator){ + return false; + } + + public boolean wrapConstant(Constant expr) { + return false; + } + + public boolean isTypeAsString() { + // TODO : get rid of this when Hibernate supports type(alias) + return false; + } +} diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java index 7866c8a65..a0bc587ae 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java @@ -28,6 +28,7 @@ import com.mysema.query.QueryModifiers; import com.mysema.query.SearchResults; import com.mysema.query.hql.HQLQueryBase; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.types.EConstructor; import com.mysema.query.types.Expr; import com.mysema.query.types.Path; @@ -59,7 +60,7 @@ public abstract class AbstractHibernateQuery this(new DefaultSessionHolder(session), HQLTemplates.DEFAULT, new DefaultQueryMetadata()); } - public AbstractHibernateQuery(SessionHolder session, HQLTemplates patterns, QueryMetadata metadata) { + public AbstractHibernateQuery(SessionHolder session, JPQLTemplates patterns, QueryMetadata metadata) { super(metadata, patterns); this.session = session; } diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateDeleteClause.java b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateDeleteClause.java index 9352e34c8..1c3559554 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateDeleteClause.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateDeleteClause.java @@ -17,6 +17,7 @@ import com.mysema.query.QueryMetadata; import com.mysema.query.dml.DeleteClause; import com.mysema.query.hql.HQLSerializer; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.types.expr.EBoolean; import com.mysema.query.types.path.PEntity; @@ -32,7 +33,7 @@ public class HibernateDeleteClause implements DeleteClause entity){ this(new DefaultSessionHolder(session), entity, HQLTemplates.DEFAULT); @@ -42,7 +43,7 @@ public class HibernateDeleteClause implements DeleteClause entity, HQLTemplates templates){ + public HibernateDeleteClause(SessionHolder session, PEntity entity, JPQLTemplates templates){ this.session = session; this.templates = templates; md.addJoin(JoinType.DEFAULT, entity); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateQuery.java index 7c9877faa..d63a7360c 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateQuery.java @@ -12,6 +12,7 @@ import com.mysema.query.DefaultQueryMetadata; import com.mysema.query.QueryMetadata; import com.mysema.query.hql.HQLQuery; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; /** @@ -45,7 +46,7 @@ public final class HibernateQuery extends AbstractHibernateQuery * @param session * @param templates */ - public HibernateQuery(Session session, HQLTemplates templates) { + public HibernateQuery(Session session, JPQLTemplates templates) { this(new DefaultSessionHolder(session), templates); } @@ -63,7 +64,7 @@ public final class HibernateQuery extends AbstractHibernateQuery * @param session * @param templates */ - public HibernateQuery(SessionHolder session, HQLTemplates templates) { + public HibernateQuery(SessionHolder session, JPQLTemplates templates) { super(session, templates, new DefaultQueryMetadata()); } @@ -72,7 +73,7 @@ public final class HibernateQuery extends AbstractHibernateQuery * @param templates * @param metadata */ - protected HibernateQuery(SessionHolder session, HQLTemplates templates, QueryMetadata metadata) { + protected HibernateQuery(SessionHolder session, JPQLTemplates templates, QueryMetadata metadata) { super(session, templates, metadata); } diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUpdateClause.java b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUpdateClause.java index 2c2c6a62a..625f986d5 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUpdateClause.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/HibernateUpdateClause.java @@ -18,6 +18,7 @@ import com.mysema.query.QueryMetadata; import com.mysema.query.dml.UpdateClause; import com.mysema.query.hql.HQLSerializer; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.types.Expr; import com.mysema.query.types.Path; import com.mysema.query.types.expr.EBoolean; @@ -36,7 +37,7 @@ public class HibernateUpdateClause implements private final SessionHolder session; - private final HQLTemplates templates; + private final JPQLTemplates templates; public HibernateUpdateClause(Session session, PEntity entity) { this(new DefaultSessionHolder(session), entity, HQLTemplates.DEFAULT); @@ -46,8 +47,7 @@ public class HibernateUpdateClause implements this(new StatelessSessionHolder(session), entity, HQLTemplates.DEFAULT); } - public HibernateUpdateClause(SessionHolder session, PEntity entity, - HQLTemplates templates) { + public HibernateUpdateClause(SessionHolder session, PEntity entity, JPQLTemplates templates) { this.session = session; this.templates = templates; metadata.addJoin(JoinType.DEFAULT, entity); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java index 58a7e0bf4..3c81349c0 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/AbstractJPAQuery.java @@ -22,6 +22,7 @@ import com.mysema.query.QueryModifiers; import com.mysema.query.SearchResults; import com.mysema.query.hql.HQLQueryBase; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.types.Expr; /** @@ -41,7 +42,7 @@ public abstract class AbstractJPAQuery> extends HQ this(new DefaultSessionHolder(em), HQLTemplates.DEFAULT, new DefaultQueryMetadata()); } - public AbstractJPAQuery(JPASessionHolder sessionHolder, HQLTemplates patterns, QueryMetadata metadata) { + public AbstractJPAQuery(JPASessionHolder sessionHolder, JPQLTemplates patterns, QueryMetadata metadata) { super(metadata, patterns); this.sessionHolder = sessionHolder; } diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPADeleteClause.java b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPADeleteClause.java index cc85a75ee..be3bedf67 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPADeleteClause.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPADeleteClause.java @@ -16,6 +16,7 @@ import com.mysema.query.QueryMetadata; import com.mysema.query.dml.DeleteClause; import com.mysema.query.hql.HQLSerializer; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.types.expr.EBoolean; import com.mysema.query.types.path.PEntity; @@ -31,13 +32,13 @@ public class JPADeleteClause implements DeleteClause{ private final EntityManager entityManager; - private final HQLTemplates templates; + private final JPQLTemplates templates; public JPADeleteClause(EntityManager em, PEntity entity){ this(em, entity, HQLTemplates.DEFAULT); } - public JPADeleteClause(EntityManager entityManager, PEntity entity, HQLTemplates templates){ + public JPADeleteClause(EntityManager entityManager, PEntity entity, JPQLTemplates templates){ this.entityManager = entityManager; this.templates = templates; metadata.addJoin(JoinType.DEFAULT, entity); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAQuery.java index ca4160f50..c3be594b7 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAQuery.java @@ -11,6 +11,7 @@ import com.mysema.query.DefaultQueryMetadata; import com.mysema.query.QueryMetadata; import com.mysema.query.hql.HQLQuery; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; /** * JPAQuery is the default implementation of the HQLQuery interface for JPA @@ -43,7 +44,7 @@ public final class JPAQuery extends AbstractJPAQuery implements HQLQue * @param entityManager * @param patterns */ - public JPAQuery(EntityManager entityManager, HQLTemplates patterns) { + public JPAQuery(EntityManager entityManager, JPQLTemplates patterns) { super(new DefaultSessionHolder(entityManager), patterns, new DefaultQueryMetadata()); } @@ -52,7 +53,7 @@ public final class JPAQuery extends AbstractJPAQuery implements HQLQue * @param templates * @param metadata */ - protected JPAQuery(JPASessionHolder session, HQLTemplates templates, QueryMetadata metadata) { + protected JPAQuery(JPASessionHolder session, JPQLTemplates templates, QueryMetadata metadata) { super(session, templates, metadata); } diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUpdateClause.java b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUpdateClause.java index feeb4b780..60eb0820d 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUpdateClause.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/jpa/JPAUpdateClause.java @@ -17,7 +17,7 @@ import com.mysema.query.QueryMetadata; import com.mysema.query.dml.UpdateClause; import com.mysema.query.hql.HQLSerializer; import com.mysema.query.hql.HQLTemplates; -import com.mysema.query.hql.hibernate.HibernateUpdateClause; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.types.Expr; import com.mysema.query.types.Path; import com.mysema.query.types.expr.EBoolean; @@ -35,13 +35,13 @@ public class JPAUpdateClause implements UpdateClause{ private final EntityManager entityManager; - private final HQLTemplates templates; + private final JPQLTemplates templates; public JPAUpdateClause(EntityManager session, PEntity entity){ this(session, entity, HQLTemplates.DEFAULT); } - public JPAUpdateClause(EntityManager em, PEntity entity, HQLTemplates templates){ + public JPAUpdateClause(EntityManager em, PEntity entity, JPQLTemplates templates){ this.entityManager = em; this.templates = templates; metadata.addJoin(JoinType.DEFAULT, entity); diff --git a/querydsl-hql/src/test/java/com/mysema/query/AbstractHibernateTest.java b/querydsl-hql/src/test/java/com/mysema/query/AbstractHibernateTest.java index a1ad023ff..6572cc3d2 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/AbstractHibernateTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/AbstractHibernateTest.java @@ -19,6 +19,7 @@ import org.junit.Test; import com.mysema.commons.lang.CloseableIterator; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.hql.domain.Cat; import com.mysema.query.hql.domain.QCat; import com.mysema.query.hql.hibernate.HibernateQuery; @@ -36,7 +37,7 @@ public abstract class AbstractHibernateTest extends AbstractStandardTest{ return new HibernateQuery(session, getTemplates()); } - protected HQLTemplates getTemplates(){ + protected JPQLTemplates getTemplates(){ return HQLTemplates.DEFAULT; } diff --git a/querydsl-hql/src/test/java/com/mysema/query/AbstractJPATest.java b/querydsl-hql/src/test/java/com/mysema/query/AbstractJPATest.java index 07084db17..28033dbba 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/AbstractJPATest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/AbstractJPATest.java @@ -15,6 +15,7 @@ import javax.persistence.EntityManager; import org.junit.Test; import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.query.hql.domain.Cat; import com.mysema.query.hql.domain.QCat; import com.mysema.query.hql.jpa.JPAQuery; @@ -31,7 +32,7 @@ public abstract class AbstractJPATest extends AbstractStandardTest{ return new JPAQuery(entityManager, getTemplates()); } - protected HQLTemplates getTemplates(){ + protected JPQLTemplates getTemplates(){ return HQLTemplates.DEFAULT; } diff --git a/querydsl-hql/src/test/java/com/mysema/query/_derby/DerbyJPAEclipseLinkTest.java b/querydsl-hql/src/test/java/com/mysema/query/_derby/DerbyJPAEclipseLinkTest.java index 03a5c16a7..e622c382e 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/_derby/DerbyJPAEclipseLinkTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/_derby/DerbyJPAEclipseLinkTest.java @@ -8,9 +8,9 @@ package com.mysema.query._derby; import org.junit.runner.RunWith; import com.mysema.query.AbstractJPATest; -import com.mysema.query.EclipseLinkTemplates; import com.mysema.query.Target; -import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.EclipseLinkTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.testutil.JPAConfig; import com.mysema.testutil.JPATestRunner; @@ -22,7 +22,7 @@ import com.mysema.testutil.JPATestRunner; @JPAConfig("derby-eclipselink") public abstract class DerbyJPAEclipseLinkTest extends AbstractJPATest{ - protected HQLTemplates getTemplates(){ + protected JPQLTemplates getTemplates(){ return EclipseLinkTemplates.DEFAULT; } diff --git a/querydsl-hql/src/test/java/com/mysema/query/_h2/H2JPAEclipseLinkTest.java b/querydsl-hql/src/test/java/com/mysema/query/_h2/H2JPAEclipseLinkTest.java index 0a61d4ee9..9d52b3881 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/_h2/H2JPAEclipseLinkTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/_h2/H2JPAEclipseLinkTest.java @@ -8,9 +8,9 @@ package com.mysema.query._h2; import org.junit.runner.RunWith; import com.mysema.query.AbstractJPATest; -import com.mysema.query.EclipseLinkTemplates; import com.mysema.query.Target; -import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.EclipseLinkTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.testutil.JPAConfig; import com.mysema.testutil.JPATestRunner; @@ -22,7 +22,7 @@ import com.mysema.testutil.JPATestRunner; @JPAConfig("h2-eclipselink") public abstract class H2JPAEclipseLinkTest extends AbstractJPATest{ - protected HQLTemplates getTemplates(){ + protected JPQLTemplates getTemplates(){ return EclipseLinkTemplates.DEFAULT; } diff --git a/querydsl-hql/src/test/java/com/mysema/query/_hsqldb/HSQLDBJPAEclipseLinkStandardTest.java b/querydsl-hql/src/test/java/com/mysema/query/_hsqldb/HSQLDBJPAEclipseLinkStandardTest.java index e91d457d6..72af100e6 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/_hsqldb/HSQLDBJPAEclipseLinkStandardTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/_hsqldb/HSQLDBJPAEclipseLinkStandardTest.java @@ -8,9 +8,9 @@ package com.mysema.query._hsqldb; import org.junit.runner.RunWith; import com.mysema.query.AbstractJPATest; -import com.mysema.query.EclipseLinkTemplates; import com.mysema.query.Target; -import com.mysema.query.hql.HQLTemplates; +import com.mysema.query.hql.EclipseLinkTemplates; +import com.mysema.query.hql.JPQLTemplates; import com.mysema.testutil.JPAConfig; import com.mysema.testutil.JPATestRunner; @@ -24,7 +24,7 @@ import com.mysema.testutil.JPATestRunner; @JPAConfig("hsqldb-eclipselink") public abstract class HSQLDBJPAEclipseLinkStandardTest extends AbstractJPATest{ - protected HQLTemplates getTemplates(){ + protected JPQLTemplates getTemplates(){ return EclipseLinkTemplates.DEFAULT; } diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java index 1bd88859e..2cf61b654 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/CollectionTest.java @@ -13,11 +13,11 @@ public class CollectionTest extends AbstractQueryTest{ @Test public void test(){ - assertToString(":a1 member of cat.kittensSet", cat.kittensSet.contains(new Cat())); - assertToString(":a1 member of cat.kittens", cat.kittens.contains(new Cat())); + assertToString(":a1 in elements(cat.kittensSet)", cat.kittensSet.contains(new Cat())); + assertToString(":a1 in elements(cat.kittens)", cat.kittens.contains(new Cat())); - assertToString("cat member of cat1.kittens", cat.in(cat1.kittens)); - assertToString("cat member of cat1.kittensSet", cat.in(cat1.kittensSet)); + assertToString("cat in elements(cat1.kittens)", cat.in(cat1.kittens)); + assertToString("cat in elements(cat1.kittensSet)", cat.in(cat1.kittensSet)); } @Test diff --git a/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java b/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java index 4c8de0400..20aef1560 100644 --- a/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java +++ b/querydsl-hql/src/test/java/com/mysema/query/hql/FeaturesTest.java @@ -115,7 +115,7 @@ public class FeaturesTest extends AbstractQueryTest { // toString("cat.bodyWeight as bw", cat.bodyWeight.as("bw")); - assertToString("kitten member of cat.kittens", kitten.in(cat.kittens)); + assertToString("kitten in elements(cat.kittens)", kitten.in(cat.kittens)); // toString("distinct cat.bodyWeight", distinct(cat.bodyWeight)); }