From 787747b028fe653a18fd9ba745f4a94d105becc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sat, 8 Dec 2012 14:50:02 +0200 Subject: [PATCH] make QueryPerformanceTest use different h2 database --- .../query/support/ListAccessVisitor.java | 18 ++++++++------- .../FactoryExpressionTransformer.java | 1 - .../query/jpa/impl/AbstractJPAQuery.java | 23 ++++++++++++------- .../mysema/query/QueryPerformanceTest.java | 2 +- .../com/mysema/testutil/JPATestRunner.java | 2 +- .../test/resources/META-INF/persistence.xml | 6 ++--- 6 files changed, 29 insertions(+), 23 deletions(-) diff --git a/querydsl-core/src/main/java/com/mysema/query/support/ListAccessVisitor.java b/querydsl-core/src/main/java/com/mysema/query/support/ListAccessVisitor.java index eb4ba4dbb..67aaf87fd 100644 --- a/querydsl-core/src/main/java/com/mysema/query/support/ListAccessVisitor.java +++ b/querydsl-core/src/main/java/com/mysema/query/support/ListAccessVisitor.java @@ -45,16 +45,18 @@ import com.mysema.query.types.template.BooleanTemplate; */ public class ListAccessVisitor implements Visitor,Context> { + private static final class UnderscoreTemplates extends Templates { + { + add(PathType.PROPERTY, "{0}_{1}"); + add(PathType.LISTVALUE, "{0}_{1}"); + add(PathType.LISTVALUE_CONSTANT, "{0}_{1}"); + } + } + public static final ListAccessVisitor DEFAULT = new ListAccessVisitor(); - public static final Templates TEMPLATE = new Templates() { - { - add(PathType.PROPERTY, "{0}_{1}"); - add(PathType.LISTVALUE, "{0}_{1}"); - add(PathType.LISTVALUE_CONSTANT, "{0}_{1}"); - }}; - - + public static final Templates TEMPLATE = new UnderscoreTemplates(); + @SuppressWarnings("unchecked") private static Path replaceParent(Path path, Path parent) { PathMetadata metadata = new PathMetadata(parent, path.getMetadata().getElement(), diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/hibernate/FactoryExpressionTransformer.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/hibernate/FactoryExpressionTransformer.java index 2c8659fa5..811077a34 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/hibernate/FactoryExpressionTransformer.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/hibernate/FactoryExpressionTransformer.java @@ -35,7 +35,6 @@ public final class FactoryExpressionTransformer implements ResultTransformer { this.constructor = constructor; } - @SuppressWarnings("unchecked") @Override public List transformList(List collection) { return collection; diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java index a10dae836..539c6c120 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/impl/AbstractJPAQuery.java @@ -58,12 +58,24 @@ public abstract class AbstractJPAQuery> extends JP private static Class hibernateQueryClass; + private static Constructor hibernateQueryTransformationConstructor; + static { try { hibernateQueryClass = Class.forName("org.hibernate.ejb.HibernateQuery"); } catch (ClassNotFoundException e) { // do nothing } + try { + Class clazz = Class.forName("com.mysema.query.jpa.impl.HibernateQueryTransformation"); + hibernateQueryTransformationConstructor = clazz.getConstructor(Query.class, FactoryExpression.class); + } catch (ClassNotFoundException e) { + // do nothing + } catch (SecurityException e) { + // do nothing + } catch (NoSuchMethodException e) { + // do nothing + } } protected final Map hints = new HashMap(); @@ -163,21 +175,16 @@ public abstract class AbstractJPAQuery> extends JP if (!forCount && ((projection.size() == 1 && projection.get(0) instanceof FactoryExpression) || wrapped != null)) { Expression expr = wrapped != null ? wrapped : projection.get(0); - String transformation = null; + Constructor transformation = null; if (hibernateQueryClass != null && hibernateQueryClass.isInstance(query)) { - transformation = "com.mysema.query.jpa.impl.HibernateQueryTransformation"; + transformation = hibernateQueryTransformationConstructor; } // else if (query.getClass().getName().startsWith("org.eclipse.persistence")) { // transformation = "com.mysema.query.jpa.impl.EclipseLinkQueryTransformation"; // } if (transformation != null) { try { - Constructor c = Class.forName(transformation).getConstructor(Query.class, FactoryExpression.class); - c.newInstance(query, expr); - } catch (NoSuchMethodException e) { - throw new QueryException(e); - } catch (ClassNotFoundException e) { - throw new QueryException(e); + transformation.newInstance(query, expr); } catch (InstantiationException e) { throw new QueryException(e); } catch (IllegalAccessException e) { diff --git a/querydsl-jpa/src/test/java/com/mysema/query/QueryPerformanceTest.java b/querydsl-jpa/src/test/java/com/mysema/query/QueryPerformanceTest.java index cc815df96..087636001 100644 --- a/querydsl-jpa/src/test/java/com/mysema/query/QueryPerformanceTest.java +++ b/querydsl-jpa/src/test/java/com/mysema/query/QueryPerformanceTest.java @@ -23,7 +23,7 @@ public class QueryPerformanceTest { @BeforeClass public static void setUpClass() { - Mode.mode.set("h2-perf"); + Mode.mode.set("h2perf"); Mode.target.set(Target.H2); } diff --git a/querydsl-jpa/src/test/java/com/mysema/testutil/JPATestRunner.java b/querydsl-jpa/src/test/java/com/mysema/testutil/JPATestRunner.java index e3c5cf449..1a2608394 100644 --- a/querydsl-jpa/src/test/java/com/mysema/testutil/JPATestRunner.java +++ b/querydsl-jpa/src/test/java/com/mysema/testutil/JPATestRunner.java @@ -88,7 +88,7 @@ public class JPATestRunner extends BlockJUnit4ClassRunner { private void start() throws Exception { String mode = Mode.mode.get(); if (mode == null) { - mode = "h2"; + mode = "h2perf"; } System.out.println(mode); isDerby = mode.contains("derby"); diff --git a/querydsl-jpa/src/test/resources/META-INF/persistence.xml b/querydsl-jpa/src/test/resources/META-INF/persistence.xml index 45003b473..70c4db8c8 100644 --- a/querydsl-jpa/src/test/resources/META-INF/persistence.xml +++ b/querydsl-jpa/src/test/resources/META-INF/persistence.xml @@ -89,7 +89,7 @@ - + org.hibernate.ejb.HibernatePersistence @@ -97,9 +97,7 @@ - +