Class JPACollectionFilterQuery
java.lang.Object
com.sap.olingo.jpa.processor.core.query.JPAAbstractQuery
com.sap.olingo.jpa.processor.core.query.JPANavigationQuery
com.sap.olingo.jpa.processor.core.query.JPACollectionFilterQuery
Create a sub query to filter on collection properties e.g.
CollectionDeeps?$select=ID&$filter=FirstLevel/SecondLevel/Address/any(s:s/TaskID eq 'DEV') or
CollectionDeeps?$filter=FirstLevel/SecondLevel/Comment/$count eq 2.
This is done as sub-query instead of a join to have more straightforward way to implement OR or AND conditions- Author:
- Oliver Grande
-
Field Summary
Fields inherited from class com.sap.olingo.jpa.processor.core.query.JPANavigationQuery
aggregationType, association, filterComplier, from, parentQuery, queryJoinTable, queryRoot, subQueryFields inherited from class com.sap.olingo.jpa.processor.core.query.JPAAbstractQuery
cb, claimsProvider, debugger, em, groups, jpaEntity, locale, odata, sd, SELECT_ALL, SELECT_ITEM_SEPERATOR -
Constructor Summary
ConstructorsConstructorDescriptionJPACollectionFilterQuery(org.apache.olingo.server.api.OData odata, com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAServiceDocument sd, javax.persistence.EntityManager em, JPAAbstractQuery parent, com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAAssociationPath associationPath, org.apache.olingo.server.api.uri.queryoption.expression.VisitableExpression expression, javax.persistence.criteria.From<?,?> from, List<String> groups)JPACollectionFilterQuery(org.apache.olingo.server.api.OData odata, com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAServiceDocument sd, javax.persistence.EntityManager em, JPAAbstractQuery parent, List<org.apache.olingo.server.api.uri.UriResource> uriResourceParts, org.apache.olingo.server.api.uri.queryoption.expression.VisitableExpression expression, javax.persistence.criteria.From<?,?> from, List<String> groups) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcreateRoots(com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAAssociationPath association)protected voidjavax.persistence.criteria.From<?,?>getRoot()<T> javax.persistence.criteria.Subquery<T>getSubQueryExists(javax.persistence.criteria.Subquery<?> childQuery)Methods inherited from class com.sap.olingo.jpa.processor.core.query.JPANavigationQuery
applyAdditionalFilter, createSelectClause, createSelectClauseAggregation, createSubQueryJoinTableAggregation, createWhereByAssociation, createWhereByAssociation, getAggregationType, getLocale, getQuery, handleAggregationMethods inherited from class com.sap.olingo.jpa.processor.core.query.JPAAbstractQuery
addWhereClause, createJoinFromPath, createProtectionWhereForEntityType, createWhereByKey, generateDesciptionJoin, getDebugger, orWhereClause
-
Constructor Details
-
JPACollectionFilterQuery
public JPACollectionFilterQuery(org.apache.olingo.server.api.OData odata, com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAServiceDocument sd, javax.persistence.EntityManager em, JPAAbstractQuery parent, List<org.apache.olingo.server.api.uri.UriResource> uriResourceParts, org.apache.olingo.server.api.uri.queryoption.expression.VisitableExpression expression, javax.persistence.criteria.From<?,?> from, List<String> groups) throws org.apache.olingo.server.api.ODataApplicationException- Throws:
org.apache.olingo.server.api.ODataApplicationException
-
JPACollectionFilterQuery
public JPACollectionFilterQuery(org.apache.olingo.server.api.OData odata, com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAServiceDocument sd, javax.persistence.EntityManager em, JPAAbstractQuery parent, com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAAssociationPath associationPath, org.apache.olingo.server.api.uri.queryoption.expression.VisitableExpression expression, javax.persistence.criteria.From<?,?> from, List<String> groups) throws org.apache.olingo.server.api.ODataApplicationException- Throws:
org.apache.olingo.server.api.ODataApplicationException
-
-
Method Details
-
getSubQueryExists
public <T> javax.persistence.criteria.Subquery<T> getSubQueryExists(javax.persistence.criteria.Subquery<?> childQuery) throws org.apache.olingo.server.api.ODataApplicationException- Specified by:
getSubQueryExistsin classJPANavigationQuery- Throws:
org.apache.olingo.server.api.ODataApplicationException
-
getRoot
public javax.persistence.criteria.From<?,?> getRoot()- Specified by:
getRootin classJPAAbstractQuery
-
createRoots
protected void createRoots(com.sap.olingo.jpa.metadata.core.edm.mapper.api.JPAAssociationPath association) throws ODataJPAQueryException- Overrides:
createRootsin classJPANavigationQuery- Throws:
ODataJPAQueryException
-
createSubQueryJoinTable
protected void createSubQueryJoinTable() throws org.apache.olingo.server.api.ODataApplicationException- Overrides:
createSubQueryJoinTablein classJPANavigationQuery- Throws:
org.apache.olingo.server.api.ODataApplicationException
-