From 8718f37a3aabba7d84298c6b2b8d68b2182af158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sat, 7 Mar 2015 00:19:01 +0200 Subject: [PATCH] Optimize exists queries --- .../main/java/com/querydsl/jpa/EclipseLinkTemplates.java | 6 ------ .../src/main/java/com/querydsl/jpa/HQLTemplates.java | 6 ------ .../src/main/java/com/querydsl/jpa/JPAQueryBase.java | 7 +------ .../src/main/java/com/querydsl/jpa/JPQLTemplates.java | 4 ---- .../src/test/java/com/querydsl/jpa/AbstractJPATest.java | 1 + 5 files changed, 2 insertions(+), 22 deletions(-) diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/EclipseLinkTemplates.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/EclipseLinkTemplates.java index a14924eae..ff32d63c6 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/EclipseLinkTemplates.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/EclipseLinkTemplates.java @@ -95,10 +95,4 @@ public class EclipseLinkTemplates extends JPQLTemplates { return false; } - @Override - public boolean isSelect1Supported() { - return true; - } - - } diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/HQLTemplates.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/HQLTemplates.java index 32ba444c8..5f17a9ae7 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/HQLTemplates.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/HQLTemplates.java @@ -116,12 +116,6 @@ public class HQLTemplates extends JPQLTemplates { return "1"; } - @Override - public boolean isSelect1Supported() { - // TODO return true, when JPQLTemplates becomes standard - return false; - } - @Override public boolean isEnumInPathSupported() { // related : http://opensource.atlassian.com/projects/hibernate/browse/HHH-5159 diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/JPAQueryBase.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/JPAQueryBase.java index f51c60e6f..6ae03f190 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/JPAQueryBase.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/JPAQueryBase.java @@ -64,12 +64,7 @@ public abstract class JPAQueryBase> extends Projectabl @Override public boolean exists() { - if (templates.isSelect1Supported()) { - return singleResult(NumberTemplate.ONE) != null; - } else { - EntityPath entityPath = (EntityPath) queryMixin.getMetadata().getJoins().get(0).getTarget(); - return !limit(1).list(entityPath).isEmpty(); - } + return singleResult(NumberTemplate.ONE) != null; } public Q fetch() { diff --git a/querydsl-jpa/src/main/java/com/querydsl/jpa/JPQLTemplates.java b/querydsl-jpa/src/main/java/com/querydsl/jpa/JPQLTemplates.java index c89fa89d6..283737e4e 100644 --- a/querydsl-jpa/src/main/java/com/querydsl/jpa/JPQLTemplates.java +++ b/querydsl-jpa/src/main/java/com/querydsl/jpa/JPQLTemplates.java @@ -158,10 +158,6 @@ public class JPQLTemplates extends Templates { return true; } - public boolean isSelect1Supported() { - return false; - } - @Nullable public String getExistsProjection() { return null; diff --git a/querydsl-jpa/src/test/java/com/querydsl/jpa/AbstractJPATest.java b/querydsl-jpa/src/test/java/com/querydsl/jpa/AbstractJPATest.java index 19f7cfb99..252511639 100644 --- a/querydsl-jpa/src/test/java/com/querydsl/jpa/AbstractJPATest.java +++ b/querydsl-jpa/src/test/java/com/querydsl/jpa/AbstractJPATest.java @@ -621,6 +621,7 @@ public abstract class AbstractJPATest { @Test public void Exists() { assertTrue(query().from(cat).where(cat.kittens.any().name.eq("Ruth123")).exists()); + assertFalse(query().from(cat).where(cat.kittens.any().name.eq("Ruth321")).exists()); } @Test