@Component(value="cuba_Query") @Scope(value="prototype") public class QueryImpl<T> extends java.lang.Object implements TypedQuery<T>
TypedQuery
interface based on EclipseLink.Modifier and Type | Class and Description |
---|---|
protected static class |
QueryImpl.Param |
Modifier and Type | Field and Description |
---|---|
protected boolean |
cacheable |
protected javax.persistence.EntityManager |
emDelegate |
protected EntityFetcher |
entityFetcher |
protected EntityManagerImpl |
entityManager |
protected FetchGroupManager |
fetchGroupMgr |
protected java.lang.Integer |
firstResult |
protected javax.persistence.FlushModeType |
flushMode |
protected java.util.Map<java.lang.String,java.lang.Object> |
hints |
protected QueryHintsProcessor |
hintsProcessor |
protected boolean |
isNative |
protected javax.persistence.LockModeType |
lockMode |
protected java.util.Collection<QueryMacroHandler> |
macroHandlers |
protected java.lang.Integer |
maxResults |
protected Metadata |
metadata |
protected java.util.Set<QueryImpl.Param> |
params |
protected org.eclipse.persistence.jpa.JpaQuery |
query |
protected QueryCacheManager |
queryCacheMgr |
protected java.lang.String |
queryString |
protected QueryTransformerFactory |
queryTransformerFactory |
protected java.lang.Class |
resultClass |
protected ServerConfig |
serverConfig |
protected boolean |
singleResultExpected |
protected PersistenceImplSupport |
support |
protected java.lang.String |
transformedQueryString |
protected java.util.List<View> |
views |
Constructor and Description |
---|
QueryImpl(EntityManagerImpl entityManager,
boolean isNative,
java.lang.Class resultClass) |
Modifier and Type | Method and Description |
---|---|
protected void |
addMacroParams(javax.persistence.TypedQuery jpaQuery) |
TypedQuery<T> |
addView(java.lang.Class<? extends Entity> entityClass,
java.lang.String viewName)
Adds View for this Query instance.
|
TypedQuery<T> |
addView(View view)
Adds View for this Query instance.
|
TypedQuery<T> |
addViewName(java.lang.String viewName)
Adds View for this Query instance.
|
protected org.eclipse.persistence.jpa.JpaQuery |
buildJPAQuery(java.lang.String queryString,
java.lang.Class<T> resultClass) |
protected void |
checkState() |
protected java.lang.Object |
convertToCollectionOfIds(java.lang.Object value) |
int |
executeUpdate()
Execute an update or delete statement.
|
protected java.lang.String |
expandMacros(java.lang.String queryStr) |
javax.persistence.Query |
getDelegate() |
protected java.lang.Class |
getEffectiveResultClass() |
T |
getFirstResult()
Execute a SELECT query.
Returns null if there is no result. Returns first result if more than one result. |
protected org.eclipse.persistence.jpa.JpaQuery<T> |
getQuery() |
java.lang.String |
getQueryString()
Get the query string.
|
protected java.lang.Object |
getResultFromCache(org.eclipse.persistence.jpa.JpaQuery jpaQuery,
boolean singleResult,
java.util.function.Consumer<java.lang.Object> fetcher) |
java.util.List<T> |
getResultList()
Execute a SELECT query and return the query results as a List.
|
T |
getSingleResult()
Execute a SELECT query that returns a single result.
|
protected java.lang.Object |
handleImplicitConversions(java.lang.Object value) |
protected TypedQuery<T> |
internalSetParameter(int position,
java.lang.Object value,
boolean implicitConversions) |
protected TypedQuery<T> |
internalSetParameter(java.lang.String name,
java.lang.Object value,
boolean implicitConversions) |
protected boolean |
isCollectionOfEntitiesOrEnums(java.lang.Object value) |
protected void |
preExecute(org.eclipse.persistence.jpa.JpaQuery jpaQuery) |
protected java.lang.String |
replaceCaseInsensitiveParam(java.lang.String query,
java.lang.String paramName) |
protected java.lang.String |
replaceInCollectionParam(java.lang.String query,
java.lang.String paramName) |
protected java.lang.String |
replaceIsNullAndIsNotNullStatements(java.lang.String query) |
protected java.lang.String |
replaceParams(java.lang.String query,
QueryParser parser) |
TypedQuery<T> |
setCacheable(boolean cacheable)
Set query results to be cached
|
TypedQuery<T> |
setFirstResult(int firstResult)
Set the position of the first result to retrieve.
|
TypedQuery<T> |
setFlushMode(javax.persistence.FlushModeType flushMode)
Set the flush mode type to be used for the query execution.
|
TypedQuery<T> |
setHint(java.lang.String hintName,
java.lang.Object value)
Set a query property or hint.
|
TypedQuery<T> |
setLockMode(javax.persistence.LockModeType lockMode)
Set the lock mode type to be used for the query execution.
|
TypedQuery<T> |
setMaxResults(int maxResults)
Set the maximum number of results to retrieve.
|
TypedQuery<T> |
setParameter(int position,
java.util.Date value,
javax.persistence.TemporalType temporalType)
Bind an instance of java.util.Date to a positional parameter.
|
TypedQuery<T> |
setParameter(int position,
java.lang.Object value)
Bind an argument to a positional parameter.
|
TypedQuery<T> |
setParameter(int position,
java.lang.Object value,
boolean implicitConversions)
Bind an argument to a positional parameter.
|
TypedQuery<T> |
setParameter(java.lang.String name,
java.util.Date value,
javax.persistence.TemporalType temporalType)
Bind an instance of java.util.Date to a named parameter.
|
TypedQuery<T> |
setParameter(java.lang.String name,
java.lang.Object value)
Bind an argument to a named parameter.
In the query text, named parameters are marked with colon (e.g. |
TypedQuery<T> |
setParameter(java.lang.String name,
java.lang.Object value,
boolean implicitConversions)
Bind an argument to a named parameter.
In the query text, named parameters are marked with colon (e.g. |
TypedQuery<T> |
setQueryString(java.lang.String queryString)
Set the query string.
|
void |
setSingleResultExpected(boolean singleResultExpected) |
TypedQuery<T> |
setView(java.lang.Class<? extends Entity> entityClass,
java.lang.String viewName)
Set View for this Query instance.
|
TypedQuery<T> |
setView(View view)
Set View for this Query instance.
|
TypedQuery<T> |
setViewName(java.lang.String viewName)
Set View for this Query instance.
|
protected java.lang.String |
transformQueryString() |
@Inject protected Metadata metadata
@Inject protected PersistenceImplSupport support
@Inject protected FetchGroupManager fetchGroupMgr
@Inject protected EntityFetcher entityFetcher
@Inject protected QueryCacheManager queryCacheMgr
@Inject protected QueryTransformerFactory queryTransformerFactory
@Inject protected ServerConfig serverConfig
@Inject protected QueryHintsProcessor hintsProcessor
protected javax.persistence.EntityManager emDelegate
protected org.eclipse.persistence.jpa.JpaQuery query
protected EntityManagerImpl entityManager
protected boolean isNative
protected java.lang.String queryString
protected java.lang.String transformedQueryString
protected java.lang.Class resultClass
protected java.util.Set<QueryImpl.Param> params
protected java.util.Map<java.lang.String,java.lang.Object> hints
protected javax.persistence.LockModeType lockMode
protected java.util.List<View> views
protected java.lang.Integer maxResults
protected java.lang.Integer firstResult
protected boolean singleResultExpected
protected boolean cacheable
protected javax.persistence.FlushModeType flushMode
protected java.util.Collection<QueryMacroHandler> macroHandlers
public QueryImpl(EntityManagerImpl entityManager, boolean isNative, @Nullable java.lang.Class resultClass)
protected org.eclipse.persistence.jpa.JpaQuery<T> getQuery()
@Nullable protected java.lang.Class getEffectiveResultClass()
protected org.eclipse.persistence.jpa.JpaQuery buildJPAQuery(java.lang.String queryString, java.lang.Class<T> resultClass)
protected void checkState()
protected java.lang.String transformQueryString()
protected java.lang.String expandMacros(java.lang.String queryStr)
protected java.lang.String replaceParams(java.lang.String query, QueryParser parser)
protected java.lang.String replaceCaseInsensitiveParam(java.lang.String query, java.lang.String paramName)
protected java.lang.String replaceInCollectionParam(java.lang.String query, java.lang.String paramName)
protected java.lang.String replaceIsNullAndIsNotNullStatements(java.lang.String query)
protected void addMacroParams(javax.persistence.TypedQuery jpaQuery)
public java.util.List<T> getResultList()
Query
getResultList
in interface Query
getResultList
in interface TypedQuery<T>
public T getSingleResult()
Query
getSingleResult
in interface Query
getSingleResult
in interface TypedQuery<T>
@Nullable public T getFirstResult()
Query
getFirstResult
in interface Query
getFirstResult
in interface TypedQuery<T>
public int executeUpdate()
Query
executeUpdate
in interface Query
public TypedQuery<T> setMaxResults(int maxResults)
Query
setMaxResults
in interface Query
setMaxResults
in interface TypedQuery<T>
public TypedQuery<T> setFirstResult(int firstResult)
Query
setFirstResult
in interface Query
setFirstResult
in interface TypedQuery<T>
firstResult
- position of the first result, numbered from 0public TypedQuery<T> setParameter(java.lang.String name, java.lang.Object value)
Query
:foo
) in JPQL queries or with
number sign in native SQL queries (e.g. #foo
).setParameter
in interface Query
setParameter
in interface TypedQuery<T>
name
- parameter namevalue
- parameter value. Entity instance replaced with its ID.public TypedQuery<T> setParameter(java.lang.String name, java.lang.Object value, boolean implicitConversions)
Query
:foo
) in JPQL queries or with
number sign in native SQL queries (e.g. #foo
).setParameter
in interface Query
setParameter
in interface TypedQuery<T>
name
- parameter namevalue
- parameter valueimplicitConversions
- whether to make parameter value conversions, e.g. convert an entity to its IDprotected TypedQuery<T> internalSetParameter(java.lang.String name, java.lang.Object value, boolean implicitConversions)
protected java.lang.Object handleImplicitConversions(java.lang.Object value)
public TypedQuery<T> setParameter(java.lang.String name, java.util.Date value, javax.persistence.TemporalType temporalType)
Query
In the query text, named parameters are marked with colon (e.g. :foo
) in JPQL queries or with
number sign in native SQL queries (e.g. #foo
).
setParameter
in interface Query
setParameter
in interface TypedQuery<T>
name
- parameter namevalue
- parameter valuetemporalType
- type of Date valuepublic TypedQuery<T> setParameter(int position, java.lang.Object value)
Query
In the query text, positional parameters are marked with ?N (e.g. ?1
).
setParameter
in interface Query
setParameter
in interface TypedQuery<T>
position
- parameter position, starting with 1value
- parameter value. Entity instance replaced with its ID.public TypedQuery<T> setParameter(int position, java.lang.Object value, boolean implicitConversions)
Query
In the query text, positional parameters are marked with ?N (e.g. ?1
).
setParameter
in interface Query
setParameter
in interface TypedQuery<T>
position
- parameter position, starting with 1value
- parameter valueimplicitConversions
- whether to make parameter value conversions, e.g. convert an entity to its IDprotected TypedQuery<T> internalSetParameter(int position, java.lang.Object value, boolean implicitConversions)
public TypedQuery<T> setParameter(int position, java.util.Date value, javax.persistence.TemporalType temporalType)
Query
?1
).setParameter
in interface Query
setParameter
in interface TypedQuery<T>
position
- parameter position, starting with 1value
- parameter valuetemporalType
- type of Date valuepublic TypedQuery<T> setLockMode(javax.persistence.LockModeType lockMode)
Query
setLockMode
in interface Query
setLockMode
in interface TypedQuery<T>
lockMode
- lock modepublic TypedQuery<T> setView(View view)
Query
setView
in interface Query
setView
in interface TypedQuery<T>
view
- view instance. If null, eager fetching is performed according to JPA mappings.public TypedQuery<T> setViewName(java.lang.String viewName)
TypedQuery
setViewName
in interface TypedQuery<T>
viewName
- view name - must not be nullpublic TypedQuery<T> setView(java.lang.Class<? extends Entity> entityClass, java.lang.String viewName)
Query
setView
in interface Query
setView
in interface TypedQuery<T>
entityClass
- entity class to get a view instance by the name providedviewName
- view namepublic TypedQuery<T> addView(View view)
Query
addView
in interface Query
addView
in interface TypedQuery<T>
view
- view instance - must not be nullpublic TypedQuery<T> addViewName(java.lang.String viewName)
TypedQuery
addViewName
in interface TypedQuery<T>
viewName
- view name - must not be nullpublic TypedQuery<T> addView(java.lang.Class<? extends Entity> entityClass, java.lang.String viewName)
Query
addView
in interface Query
addView
in interface TypedQuery<T>
entityClass
- entity class to get a view instance by the name providedviewName
- view name - must not be nullpublic javax.persistence.Query getDelegate()
getDelegate
in interface Query
public java.lang.String getQueryString()
Query
getQueryString
in interface Query
public TypedQuery<T> setQueryString(java.lang.String queryString)
Query
setQueryString
in interface Query
queryString
- query stringpublic TypedQuery<T> setCacheable(boolean cacheable)
TypedQuery
setCacheable
in interface Query
setCacheable
in interface TypedQuery<T>
cacheable
- whether query is cacheablepublic TypedQuery<T> setFlushMode(javax.persistence.FlushModeType flushMode)
TypedQuery
setFlushMode
in interface Query
setFlushMode
in interface TypedQuery<T>
flushMode
- flush modepublic TypedQuery<T> setHint(java.lang.String hintName, java.lang.Object value)
Query
setHint
in interface Query
hintName
- name of property or hintvalue
- value of the property or hintQueryHints
public void setSingleResultExpected(boolean singleResultExpected)
protected void preExecute(org.eclipse.persistence.jpa.JpaQuery jpaQuery)
protected java.lang.Object getResultFromCache(org.eclipse.persistence.jpa.JpaQuery jpaQuery, boolean singleResult, java.util.function.Consumer<java.lang.Object> fetcher)
protected boolean isCollectionOfEntitiesOrEnums(java.lang.Object value)
protected java.lang.Object convertToCollectionOfIds(java.lang.Object value)