org.synyx.hades.dao.query
Class QueryUtils

java.lang.Object
  extended by org.synyx.hades.dao.query.QueryUtils

public abstract class QueryUtils
extends java.lang.Object

Simple utility class to create JPA queries.

Author:
Oliver Gierke - gierke@synyx.de

Field Summary
static java.lang.String COUNT_QUERY_STRING
           
static java.lang.String DELETE_ALL_QUERY_STRING
           
static java.lang.String READ_ALL_QUERY
           
 
Method Summary
static
<T> javax.persistence.Query
applyAndBind(java.lang.String queryString, java.util.Collection<T> entities, javax.persistence.EntityManager entityManager)
          Creates a where-clause referencing the given entities and appends it to the given query string.
static java.lang.String applySorting(java.lang.String query, Sort sort)
          Adds order by clause to the JPQL query.
static java.lang.String applySorting(java.lang.String query, Sort sort, java.lang.String alias)
          Adds order by clause to the JPQL query.
static java.lang.String createCountQueryFor(java.lang.String originalQuery)
          Creates a count projected query from the given orginal query.
static java.lang.String detectAlias(java.lang.String query)
          Resolves the alias for the entity to be retrieved from the given JPA query.
static java.lang.String getQueryString(java.lang.String template, java.lang.Class<?> clazz)
          Returns the query string for the given class.
static java.lang.String getQueryString(java.lang.String template, java.lang.String clazzName)
          Returns the query string for the given class name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COUNT_QUERY_STRING

public static final java.lang.String COUNT_QUERY_STRING
See Also:
Constant Field Values

DELETE_ALL_QUERY_STRING

public static final java.lang.String DELETE_ALL_QUERY_STRING
See Also:
Constant Field Values

READ_ALL_QUERY

public static final java.lang.String READ_ALL_QUERY
See Also:
Constant Field Values
Method Detail

getQueryString

public static java.lang.String getQueryString(java.lang.String template,
                                              java.lang.Class<?> clazz)
Returns the query string for the given class.

Returns:

getQueryString

public static java.lang.String getQueryString(java.lang.String template,
                                              java.lang.String clazzName)
Returns the query string for the given class name.

Parameters:
template -
clazzName -
Returns:

applySorting

public static java.lang.String applySorting(java.lang.String query,
                                            Sort sort)
Adds order by clause to the JPQL query. Uses the DEFAULT_ALIAS to bind the sorting property to.

Parameters:
query -
alias -
sort -
Returns:

applySorting

public static java.lang.String applySorting(java.lang.String query,
                                            Sort sort,
                                            java.lang.String alias)
Adds order by clause to the JPQL query.

Parameters:
query -
sort -
alias -
Returns:

detectAlias

public static java.lang.String detectAlias(java.lang.String query)
Resolves the alias for the entity to be retrieved from the given JPA query.

Parameters:
query -
Returns:

applyAndBind

public static <T> javax.persistence.Query applyAndBind(java.lang.String queryString,
                                                       java.util.Collection<T> entities,
                                                       javax.persistence.EntityManager entityManager)
Creates a where-clause referencing the given entities and appends it to the given query string. Binds the given entities to the query.

Type Parameters:
T -
Parameters:
queryString -
entities -
entityManager -
Returns:

createCountQueryFor

public static java.lang.String createCountQueryFor(java.lang.String originalQuery)
Creates a count projected query from the given orginal query.

Parameters:
originalQuery - must not be null or empty
Returns:


Copyright © 2009-2010 Synyx GmbH & Co. KG. All Rights Reserved.