Class HibernateJpaProvider
java.lang.Object
com.blazebit.persistence.integration.hibernate.base.HibernateJpaProvider
- All Implemented Interfaces:
JpaProvider
- Direct Known Subclasses:
HibernateJpa21Provider
public class HibernateJpaProvider extends Object implements JpaProvider
- Since:
- 1.0.0
- Author:
- Christian Beikov
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.blazebit.persistence.spi.JpaProvider
JpaProvider.ConstraintType
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,org.hibernate.persister.collection.CollectionPersister>
collectionPersisters
protected com.blazebit.persistence.integration.hibernate.base.HibernateJpaProvider.DB
db
protected Map<String,org.hibernate.persister.entity.EntityPersister>
entityPersisters
protected javax.persistence.PersistenceUnitUtil
persistenceUnitUtil
-
Constructor Summary
Constructors Constructor Description HibernateJpaProvider(javax.persistence.PersistenceUnitUtil persistenceUnitUtil, String dbms, Map<String,org.hibernate.persister.entity.EntityPersister> entityPersisters, Map<String,org.hibernate.persister.collection.CollectionPersister> collectionPersisters, int major, int minor, int fix, String type)
-
Method Summary
Modifier and Type Method Description boolean
containsEntity(javax.persistence.EntityManager em, Class<?> entityClass, Object id)
String
escapeCharacter(char character)
String
getBooleanConditionalExpression(boolean value)
String
getBooleanExpression(boolean value)
protected org.hibernate.persister.collection.QueryableCollection
getCollectionPersister(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName)
String
getCollectionValueFunction()
String[]
getColumnNames(javax.persistence.metamodel.EntityType<?> entityType, String attributeName)
String[]
getColumnNames(javax.persistence.metamodel.EntityType<?> ownerType, String elementCollectionPath, String attributeName)
String[]
getColumnTypes(javax.persistence.metamodel.EntityType<?> entityType, String attributeName)
String[]
getColumnTypes(javax.persistence.metamodel.EntityType<?> ownerType, String elementCollectionPath, String attributeName)
String
getCustomFunctionInvocation(String functionName, int argumentCount)
Class<?>
getDefaultQueryResultType()
String[]
getDiscriminatorColumnCheck(javax.persistence.metamodel.EntityType<?> entityType)
protected org.hibernate.persister.entity.AbstractEntityPersister
getEntityPersister(javax.persistence.metamodel.ManagedType<?> ownerType)
Object
getIdentifier(Object entity)
List<String>
getIdentifierOrUniqueKeyEmbeddedPropertyNames(javax.persistence.metamodel.EntityType<?> owner, String attributeName)
List<String>
getIdentifierOrUniqueKeyEmbeddedPropertyNames(javax.persistence.metamodel.EntityType<?> owner, String elementCollectionPath, String attributeName)
Map<String,String>
getJoinMappingPropertyNames(javax.persistence.metamodel.EntityType<?> owner, String elementCollectionPath, String attributeName)
JoinTable
getJoinTable(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)
JpaMetamodelAccessor
getJpaMetamodelAccessor()
String
getMappedBy(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)
protected String
getMappedBy(org.hibernate.persister.collection.CollectionPersister persister)
String
getNullExpression()
String
getOnClause()
protected String
getTypeName(javax.persistence.metamodel.ManagedType<?> ownerType)
Map<String,String>
getWritableMappedByMappings(javax.persistence.metamodel.EntityType<?> inverseType, javax.persistence.metamodel.EntityType<?> ownerType, String attributeName, String inverseAttribute)
boolean
hasJoinCondition(javax.persistence.metamodel.ManagedType<?> owner, String elementCollectionPath, String attributeName)
boolean
isBag(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)
boolean
isColumnShared(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)
boolean
isDeleteCascaded(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName)
boolean
isDeleteCascaded(javax.persistence.metamodel.ManagedType<?> ownerType, String elementCollectionPath, String attributeName)
boolean
isForeignJoinColumn(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)
protected boolean
isForeignKeyDirectionToParent(org.hibernate.type.CollectionType collectionType)
protected boolean
isForeignKeyDirectionToParent(org.hibernate.type.EntityType entityType)
boolean
isOrphanRemoval(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName)
boolean
isOrphanRemoval(javax.persistence.metamodel.ManagedType<?> ownerType, String elementCollectionPath, String attributeName)
boolean
needsAssociationToIdRewriteInOnClause()
boolean
needsBracketsForListParameter()
boolean
needsBrokenAssociationToIdRewriteInOnClause()
boolean
needsCaseWhenElseBranch()
boolean
needsCorrelationPredicateWhenCorrelatingWithWhereClause()
boolean
needsElementCollectionIdCutoff()
boolean
needsJoinSubqueryRewrite()
boolean
needsTypeConstraintForColumnSharing()
boolean
needsUnproxyForFieldAccess()
void
renderNullPrecedence(StringBuilder sb, String expression, String resolvedExpression, String order, String nulls)
JpaProvider.ConstraintType
requiresTreatFilter(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName, JoinType joinType)
void
setCacheable(javax.persistence.Query query)
boolean
supportsCollectionTableCleanupOnDelete()
boolean
supportsCollectionValueDereference()
boolean
supportsCountStar()
boolean
supportsCustomFunctions()
boolean
supportsEntityJoin()
boolean
supportsEnumLiteral(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName, boolean key)
boolean
supportsForeignAssociationInOnClause()
boolean
supportsGroupByEntityAlias()
boolean
supportsInsertStatement()
boolean
supportsJoinTableCleanupOnDelete()
boolean
supportsJpa21()
boolean
supportsNonDrivingAliasInOnClause()
boolean
supportsNonScalarSubquery()
boolean
supportsNullPrecedenceExpression()
boolean
supportsProxyParameterForNonPkAssociation()
boolean
supportsRootTreat()
boolean
supportsRootTreatJoin()
boolean
supportsRootTreatTreatJoin()
boolean
supportsSelectCompositeIdEntityInSubquery()
boolean
supportsSingleValuedAssociationIdExpressions()
boolean
supportsSingleValuedAssociationNaturalIdExpressions()
boolean
supportsSubqueryAliasShadowing()
boolean
supportsSubqueryInFunction()
boolean
supportsSubtypePropertyResolving()
boolean
supportsSubtypeRelationResolving()
boolean
supportsTemporalLiteral()
boolean
supportsTransientEntityAsParameter()
boolean
supportsTreatCorrelation()
boolean
supportsTreatJoin()
boolean
supportsUpdateSetAssociationId()
boolean
supportsUpdateSetEmbeddable()
<T> T
unproxy(T entity)
-
Field Details
-
persistenceUnitUtil
protected final javax.persistence.PersistenceUnitUtil persistenceUnitUtil -
db
protected final com.blazebit.persistence.integration.hibernate.base.HibernateJpaProvider.DB db -
entityPersisters
-
collectionPersisters
-
-
Constructor Details
-
HibernateJpaProvider
public HibernateJpaProvider(javax.persistence.PersistenceUnitUtil persistenceUnitUtil, String dbms, Map<String,org.hibernate.persister.entity.EntityPersister> entityPersisters, Map<String,org.hibernate.persister.collection.CollectionPersister> collectionPersisters, int major, int minor, int fix, String type)
-
-
Method Details
-
supportsEntityJoin
public boolean supportsEntityJoin()- Specified by:
supportsEntityJoin
in interfaceJpaProvider
-
needsJoinSubqueryRewrite
public boolean needsJoinSubqueryRewrite()- Specified by:
needsJoinSubqueryRewrite
in interfaceJpaProvider
-
supportsForeignAssociationInOnClause
public boolean supportsForeignAssociationInOnClause()- Specified by:
supportsForeignAssociationInOnClause
in interfaceJpaProvider
-
needsAssociationToIdRewriteInOnClause
public boolean needsAssociationToIdRewriteInOnClause()- Specified by:
needsAssociationToIdRewriteInOnClause
in interfaceJpaProvider
-
needsBrokenAssociationToIdRewriteInOnClause
public boolean needsBrokenAssociationToIdRewriteInOnClause()- Specified by:
needsBrokenAssociationToIdRewriteInOnClause
in interfaceJpaProvider
-
supportsCollectionTableCleanupOnDelete
public boolean supportsCollectionTableCleanupOnDelete()- Specified by:
supportsCollectionTableCleanupOnDelete
in interfaceJpaProvider
-
supportsJoinTableCleanupOnDelete
public boolean supportsJoinTableCleanupOnDelete()- Specified by:
supportsJoinTableCleanupOnDelete
in interfaceJpaProvider
-
needsCorrelationPredicateWhenCorrelatingWithWhereClause
public boolean needsCorrelationPredicateWhenCorrelatingWithWhereClause()- Specified by:
needsCorrelationPredicateWhenCorrelatingWithWhereClause
in interfaceJpaProvider
-
supportsSingleValuedAssociationNaturalIdExpressions
public boolean supportsSingleValuedAssociationNaturalIdExpressions()- Specified by:
supportsSingleValuedAssociationNaturalIdExpressions
in interfaceJpaProvider
-
supportsGroupByEntityAlias
public boolean supportsGroupByEntityAlias()- Specified by:
supportsGroupByEntityAlias
in interfaceJpaProvider
-
needsElementCollectionIdCutoff
public boolean needsElementCollectionIdCutoff()- Specified by:
needsElementCollectionIdCutoff
in interfaceJpaProvider
-
needsUnproxyForFieldAccess
public boolean needsUnproxyForFieldAccess()- Specified by:
needsUnproxyForFieldAccess
in interfaceJpaProvider
-
needsCaseWhenElseBranch
public boolean needsCaseWhenElseBranch()- Specified by:
needsCaseWhenElseBranch
in interfaceJpaProvider
-
supportsJpa21
public boolean supportsJpa21()- Specified by:
supportsJpa21
in interfaceJpaProvider
-
supportsInsertStatement
public boolean supportsInsertStatement()- Specified by:
supportsInsertStatement
in interfaceJpaProvider
-
needsBracketsForListParameter
public boolean needsBracketsForListParameter()- Specified by:
needsBracketsForListParameter
in interfaceJpaProvider
-
getBooleanExpression
- Specified by:
getBooleanExpression
in interfaceJpaProvider
-
getBooleanConditionalExpression
- Specified by:
getBooleanConditionalExpression
in interfaceJpaProvider
-
getNullExpression
- Specified by:
getNullExpression
in interfaceJpaProvider
-
escapeCharacter
- Specified by:
escapeCharacter
in interfaceJpaProvider
-
supportsNullPrecedenceExpression
public boolean supportsNullPrecedenceExpression()- Specified by:
supportsNullPrecedenceExpression
in interfaceJpaProvider
-
renderNullPrecedence
public void renderNullPrecedence(StringBuilder sb, String expression, String resolvedExpression, String order, String nulls)- Specified by:
renderNullPrecedence
in interfaceJpaProvider
-
getOnClause
- Specified by:
getOnClause
in interfaceJpaProvider
-
getCollectionValueFunction
- Specified by:
getCollectionValueFunction
in interfaceJpaProvider
-
supportsCollectionValueDereference
public boolean supportsCollectionValueDereference()- Specified by:
supportsCollectionValueDereference
in interfaceJpaProvider
-
getDefaultQueryResultType
- Specified by:
getDefaultQueryResultType
in interfaceJpaProvider
-
getCustomFunctionInvocation
- Specified by:
getCustomFunctionInvocation
in interfaceJpaProvider
-
supportsRootTreat
public boolean supportsRootTreat()- Specified by:
supportsRootTreat
in interfaceJpaProvider
-
supportsTreatJoin
public boolean supportsTreatJoin()- Specified by:
supportsTreatJoin
in interfaceJpaProvider
-
supportsTreatCorrelation
public boolean supportsTreatCorrelation()- Specified by:
supportsTreatCorrelation
in interfaceJpaProvider
-
supportsRootTreatJoin
public boolean supportsRootTreatJoin()- Specified by:
supportsRootTreatJoin
in interfaceJpaProvider
-
supportsRootTreatTreatJoin
public boolean supportsRootTreatTreatJoin()- Specified by:
supportsRootTreatTreatJoin
in interfaceJpaProvider
-
supportsSubtypePropertyResolving
public boolean supportsSubtypePropertyResolving()- Specified by:
supportsSubtypePropertyResolving
in interfaceJpaProvider
-
supportsSubtypeRelationResolving
public boolean supportsSubtypeRelationResolving()- Specified by:
supportsSubtypeRelationResolving
in interfaceJpaProvider
-
supportsCountStar
public boolean supportsCountStar()- Specified by:
supportsCountStar
in interfaceJpaProvider
-
supportsCustomFunctions
public boolean supportsCustomFunctions()- Specified by:
supportsCustomFunctions
in interfaceJpaProvider
-
supportsNonScalarSubquery
public boolean supportsNonScalarSubquery()- Specified by:
supportsNonScalarSubquery
in interfaceJpaProvider
-
supportsSubqueryInFunction
public boolean supportsSubqueryInFunction()- Specified by:
supportsSubqueryInFunction
in interfaceJpaProvider
-
supportsSubqueryAliasShadowing
public boolean supportsSubqueryAliasShadowing()- Specified by:
supportsSubqueryAliasShadowing
in interfaceJpaProvider
-
getTypeName
-
getEntityPersister
protected final org.hibernate.persister.entity.AbstractEntityPersister getEntityPersister(javax.persistence.metamodel.ManagedType<?> ownerType) -
getCollectionPersister
protected final org.hibernate.persister.collection.QueryableCollection getCollectionPersister(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName) -
getDiscriminatorColumnCheck
- Specified by:
getDiscriminatorColumnCheck
in interfaceJpaProvider
-
isForeignJoinColumn
public boolean isForeignJoinColumn(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)- Specified by:
isForeignJoinColumn
in interfaceJpaProvider
-
isColumnShared
public boolean isColumnShared(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)- Specified by:
isColumnShared
in interfaceJpaProvider
-
requiresTreatFilter
public JpaProvider.ConstraintType requiresTreatFilter(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName, JoinType joinType)- Specified by:
requiresTreatFilter
in interfaceJpaProvider
-
isForeignKeyDirectionToParent
protected boolean isForeignKeyDirectionToParent(org.hibernate.type.EntityType entityType) -
isForeignKeyDirectionToParent
protected boolean isForeignKeyDirectionToParent(org.hibernate.type.CollectionType collectionType) -
getMappedBy
public String getMappedBy(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)- Specified by:
getMappedBy
in interfaceJpaProvider
-
getWritableMappedByMappings
public Map<String,String> getWritableMappedByMappings(javax.persistence.metamodel.EntityType<?> inverseType, javax.persistence.metamodel.EntityType<?> ownerType, String attributeName, String inverseAttribute)- Specified by:
getWritableMappedByMappings
in interfaceJpaProvider
-
getMappedBy
-
getColumnNames
public String[] getColumnNames(javax.persistence.metamodel.EntityType<?> entityType, String attributeName)- Specified by:
getColumnNames
in interfaceJpaProvider
-
getColumnNames
public String[] getColumnNames(javax.persistence.metamodel.EntityType<?> ownerType, String elementCollectionPath, String attributeName)- Specified by:
getColumnNames
in interfaceJpaProvider
-
getColumnTypes
public String[] getColumnTypes(javax.persistence.metamodel.EntityType<?> entityType, String attributeName)- Specified by:
getColumnTypes
in interfaceJpaProvider
-
getColumnTypes
public String[] getColumnTypes(javax.persistence.metamodel.EntityType<?> ownerType, String elementCollectionPath, String attributeName)- Specified by:
getColumnTypes
in interfaceJpaProvider
-
getJoinTable
public JoinTable getJoinTable(javax.persistence.metamodel.EntityType<?> ownerType, String attributeName)- Specified by:
getJoinTable
in interfaceJpaProvider
-
isBag
- Specified by:
isBag
in interfaceJpaProvider
-
isOrphanRemoval
public boolean isOrphanRemoval(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName)- Specified by:
isOrphanRemoval
in interfaceJpaProvider
-
isOrphanRemoval
public boolean isOrphanRemoval(javax.persistence.metamodel.ManagedType<?> ownerType, String elementCollectionPath, String attributeName)- Specified by:
isOrphanRemoval
in interfaceJpaProvider
-
isDeleteCascaded
public boolean isDeleteCascaded(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName)- Specified by:
isDeleteCascaded
in interfaceJpaProvider
-
isDeleteCascaded
public boolean isDeleteCascaded(javax.persistence.metamodel.ManagedType<?> ownerType, String elementCollectionPath, String attributeName)- Specified by:
isDeleteCascaded
in interfaceJpaProvider
-
hasJoinCondition
public boolean hasJoinCondition(javax.persistence.metamodel.ManagedType<?> owner, String elementCollectionPath, String attributeName)- Specified by:
hasJoinCondition
in interfaceJpaProvider
-
containsEntity
- Specified by:
containsEntity
in interfaceJpaProvider
-
supportsSingleValuedAssociationIdExpressions
public boolean supportsSingleValuedAssociationIdExpressions()- Specified by:
supportsSingleValuedAssociationIdExpressions
in interfaceJpaProvider
-
supportsUpdateSetEmbeddable
public boolean supportsUpdateSetEmbeddable()- Specified by:
supportsUpdateSetEmbeddable
in interfaceJpaProvider
-
supportsUpdateSetAssociationId
public boolean supportsUpdateSetAssociationId()- Specified by:
supportsUpdateSetAssociationId
in interfaceJpaProvider
-
supportsTransientEntityAsParameter
public boolean supportsTransientEntityAsParameter()- Specified by:
supportsTransientEntityAsParameter
in interfaceJpaProvider
-
needsTypeConstraintForColumnSharing
public boolean needsTypeConstraintForColumnSharing()- Specified by:
needsTypeConstraintForColumnSharing
in interfaceJpaProvider
-
setCacheable
public void setCacheable(javax.persistence.Query query)- Specified by:
setCacheable
in interfaceJpaProvider
-
getIdentifierOrUniqueKeyEmbeddedPropertyNames
public List<String> getIdentifierOrUniqueKeyEmbeddedPropertyNames(javax.persistence.metamodel.EntityType<?> owner, String attributeName)- Specified by:
getIdentifierOrUniqueKeyEmbeddedPropertyNames
in interfaceJpaProvider
-
getIdentifierOrUniqueKeyEmbeddedPropertyNames
public List<String> getIdentifierOrUniqueKeyEmbeddedPropertyNames(javax.persistence.metamodel.EntityType<?> owner, String elementCollectionPath, String attributeName)- Specified by:
getIdentifierOrUniqueKeyEmbeddedPropertyNames
in interfaceJpaProvider
-
getJoinMappingPropertyNames
public Map<String,String> getJoinMappingPropertyNames(javax.persistence.metamodel.EntityType<?> owner, String elementCollectionPath, String attributeName)- Specified by:
getJoinMappingPropertyNames
in interfaceJpaProvider
-
supportsEnumLiteral
public boolean supportsEnumLiteral(javax.persistence.metamodel.ManagedType<?> ownerType, String attributeName, boolean key)- Specified by:
supportsEnumLiteral
in interfaceJpaProvider
-
supportsTemporalLiteral
public boolean supportsTemporalLiteral()- Specified by:
supportsTemporalLiteral
in interfaceJpaProvider
-
supportsNonDrivingAliasInOnClause
public boolean supportsNonDrivingAliasInOnClause()- Specified by:
supportsNonDrivingAliasInOnClause
in interfaceJpaProvider
-
supportsSelectCompositeIdEntityInSubquery
public boolean supportsSelectCompositeIdEntityInSubquery()- Specified by:
supportsSelectCompositeIdEntityInSubquery
in interfaceJpaProvider
-
supportsProxyParameterForNonPkAssociation
public boolean supportsProxyParameterForNonPkAssociation()- Specified by:
supportsProxyParameterForNonPkAssociation
in interfaceJpaProvider
-
getIdentifier
- Specified by:
getIdentifier
in interfaceJpaProvider
-
unproxy
public <T> T unproxy(T entity)- Specified by:
unproxy
in interfaceJpaProvider
-
getJpaMetamodelAccessor
- Specified by:
getJpaMetamodelAccessor
in interfaceJpaProvider
-