From afe7eb1c2d70167666979ac45fcc7e205e6a66ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 16 Nov 2009 09:49:07 +0000 Subject: [PATCH] --- .../hql/hibernate/AbstractHibernateQuery.java | 104 +++++++++--------- .../query/hql/jpa/AbstractJPAQuery.java | 58 +++++----- 2 files changed, 82 insertions(+), 80 deletions(-) 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 42baad138..f6698a980 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 @@ -35,15 +35,38 @@ public abstract class AbstractHibernateQuery expr) { + return uniqueResult(expr.count()); + } + + private Query createQuery(Expr expr){ + addToProjection(expr); + String queryString = toQueryString(); + return createQuery(queryString, getMetadata().getModifiers()); + } + + private Query createQuery(Expr expr1, Expr expr2, Expr... rest){ + addToProjection(expr1, expr2); + addToProjection(rest); + String queryString = toQueryString(); + logQuery(queryString); + return createQuery(queryString, getMetadata().getModifiers()); + } + + private Query createQuery(String queryString, @Nullable QueryModifiers modifiers) { Query query = session.createQuery(queryString); HibernateUtil.setConstants(query, getConstants()); @@ -60,44 +83,27 @@ public abstract class AbstractHibernateQuery iterate(Expr e1, Expr e2, Expr... rest) { + return createQuery(e1, e2, rest).iterate(); + } @SuppressWarnings("unchecked") - public List list(Expr expr) { - addToProjection(expr); - String queryString = toQueryString(); - - Query query = createQuery(queryString, getMetadata().getModifiers()); - return query.list(); + public Iterator iterate(Expr projection) { + return createQuery(projection).iterate(); } @SuppressWarnings("unchecked") public List list(Expr expr1, Expr expr2, Expr... rest) { - addToProjection(expr1, expr2); - addToProjection(rest); - String queryString = toQueryString(); - logQuery(queryString); - Query query = createQuery(queryString, getMetadata().getModifiers()); - return query.list(); - } - - public ScrollableResults scroll(ScrollMode mode, Expr expr) { - addToProjection(expr); - String queryString = toQueryString(); - logQuery(queryString); - Query query = createQuery(queryString, getMetadata().getModifiers()); - return query.scroll(mode); + return createQuery(expr1, expr2, rest).list(); } - public ScrollableResults scroll(ScrollMode mode, Expr expr1, Expr expr2, Expr... rest) { - addToProjection(expr1, expr2); - addToProjection(rest); - String queryString = toQueryString(); - logQuery(queryString); - Query query = createQuery(queryString, getMetadata().getModifiers()); - return query.scroll(mode); + @SuppressWarnings("unchecked") + public List list(Expr expr) { + return createQuery(expr).list(); } - public SearchResults listResults(Expr expr) { addToProjection(expr); Query query = createQuery(toCountRowsString(), null); @@ -115,12 +121,22 @@ public abstract class AbstractHibernateQuery expr) { - return uniqueResult(expr.count()); + public ScrollableResults scroll(ScrollMode mode, Expr expr) { + return createQuery(expr).scroll(mode); + } + + public ScrollableResults scroll(ScrollMode mode, Expr expr1, Expr expr2, Expr... rest) { + return createQuery(expr1, expr2, rest).scroll(mode); + } + + public void setFetchSize(int fetchSize) { + this.fetchSize = fetchSize; } @SuppressWarnings("unchecked") @@ -131,26 +147,6 @@ public abstract class AbstractHibernateQuery iterate(Expr e1, Expr e2, Expr... rest) { - // TODO : optimize - return list(e1, e2, rest).iterator(); - } - - public Iterator iterate(Expr projection) { - // TODO : optimize - return list(projection).iterator(); - } - - protected void logQuery(String queryString){ - if (logger.isDebugEnabled()){ - logger.debug(queryString.replace('\n', ' ')); - } - } - - public void setFetchSize(int fetchSize) { - this.fetchSize = fetchSize; - } 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 0018f9170..b90d051f7 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 @@ -40,6 +40,25 @@ public abstract class AbstractJPAQuery this.em = em; } + public long count() { + return uniqueResult(Expr.countAll()); + } + + private Query createQuery(Expr expr){ + addToProjection(expr); + String queryString = toString(); + logQuery(queryString); + return createQuery(queryString, getMetadata().getModifiers()); + } + + private Query createQuery(Expr expr1, Expr expr2, Expr... rest){ + addToProjection(expr1, expr2); + addToProjection(rest); + String queryString = toString(); + logQuery(queryString); + return createQuery(queryString, getMetadata().getModifiers()); + } + private Query createQuery(String queryString, @Nullable QueryModifiers modifiers) { Query query = em.createQuery(queryString); JPAUtil.setConstants(query, getConstants()); @@ -54,23 +73,22 @@ public abstract class AbstractJPAQuery return query; } - @SuppressWarnings("unchecked") - public List list(Expr expr) { - addToProjection(expr); - String queryString = toString(); - logQuery(queryString); - Query query = createQuery(queryString, getMetadata().getModifiers()); - return query.getResultList(); + public Iterator iterate(Expr first, Expr second, Expr... rest) { + return list(first, second, rest).iterator(); + } + + public Iterator iterate(Expr projection) { + return list(projection).iterator(); } @SuppressWarnings("unchecked") - public List list(Expr expr1, Expr expr2, Expr... rest) { - addToProjection(expr1, expr2); - addToProjection(rest); - String queryString = toString(); - logQuery(queryString); - Query query = createQuery(queryString, getMetadata().getModifiers()); - return query.getResultList(); + public List list(Expr expr1, Expr expr2, Expr... rest) { + return createQuery(expr1, expr2, rest).getResultList(); + } + + @SuppressWarnings("unchecked") + public List list(Expr expr) { + return createQuery(expr).getResultList(); } public SearchResults listResults(Expr expr) { @@ -89,18 +107,6 @@ public abstract class AbstractJPAQuery return SearchResults.emptyResults(); } } - - public long count() { - return uniqueResult(Expr.countAll()); - } - - public Iterator iterate(Expr projection) { - return list(projection).iterator(); - } - - public Iterator iterate(Expr first, Expr second, Expr... rest) { - return list(first, second, rest).iterator(); - } protected void logQuery(String queryString){ if (logger.isDebugEnabled()){