Package org.hibernate.cfg.annotations
Class CollectionBinder
- java.lang.Object
-
- org.hibernate.cfg.annotations.CollectionBinder
-
- Direct Known Subclasses:
BagBinder
,ListBinder
,MapBinder
,SetBinder
public abstract class CollectionBinder extends Object
Base class for binding different types of collections to Hibernate configuration objects.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
cascadeDeleteEnabled
protected Collection
collection
protected IndexColumn
indexColumn
protected Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState>
inheritanceStatePerClass
protected Map<String,IdentifierGeneratorDefinition>
localGenerators
protected String
mapKeyPropertyName
protected String
propertyName
-
Constructor Summary
Constructors Modifier Constructor Description protected
CollectionBinder(Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver, boolean isSortedCollection, MetadataBuildingContext buildingContext)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static String
adjustUserSuppliedValueCollectionOrderingFragment(String orderByFragment)
void
bind()
static void
bindCollection(PropertyHolder propertyHolder, Nullability nullability, PropertyData inferredData, Map<String,IdentifierGeneratorDefinition> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, MetadataBuildingContext context, Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass, org.hibernate.annotations.common.reflection.XProperty property, AnnotatedJoinColumn[] joinColumns)
void
bindManytoManyInverseFk(PersistentClass referencedEntity, AnnotatedJoinColumn[] columns, SimpleValue value, boolean unique, MetadataBuildingContext buildingContext)
bind the inverse FK of aManyToMany
.protected void
bindOneToManySecondPass(Collection collection, Map<String,PersistentClass> persistentClasses, AnnotatedJoinColumn[] fkJoinColumns, org.hibernate.annotations.common.reflection.XClass collectionType, boolean cascadeDeleteEnabled, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext, Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass)
protected boolean
bindStarToManySecondPass(Map<String,PersistentClass> persistentClasses, org.hibernate.annotations.common.reflection.XClass elementType, AnnotatedJoinColumn[] fkJoinColumns, AnnotatedJoinColumn[] keyColumns, AnnotatedJoinColumn[] inverseColumns, AnnotatedColumn[] elementColumns, boolean isEmbedded, org.hibernate.annotations.common.reflection.XProperty property, boolean unique, TableBinder associationTableBinder, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext)
return true if it's a Fk, false if it's an association tableprotected abstract Collection
createCollection(PersistentClass persistentClass)
protected MetadataBuildingContext
getBuildingContext()
Collection
getCollection()
static CollectionBinder
getCollectionBinder(org.hibernate.annotations.common.reflection.XProperty property, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext)
collection binder factorySupplier<ManagedBean<? extends UserCollectionType>>
getCustomTypeBeanResolver()
NotFoundAction
getNotFoundAction()
SecondPass
getSecondPass(AnnotatedJoinColumn[] fkJoinColumns, AnnotatedJoinColumn[] keyColumns, AnnotatedJoinColumn[] inverseColumns, AnnotatedColumn[] elementColumns, AnnotatedColumn[] mapKeyColumns, AnnotatedJoinColumn[] mapKeyManyToManyColumns, boolean isEmbedded, org.hibernate.annotations.common.reflection.XProperty property, org.hibernate.annotations.common.reflection.XClass elementType, NotFoundAction notFoundAction, boolean unique, TableBinder assocTableBinder, MetadataBuildingContext buildingContext)
protected boolean
isHibernateExtensionMapping()
boolean
isMap()
static ManagedBean<? extends UserCollectionType>
resolveCustomType(org.hibernate.annotations.common.reflection.XProperty property, CollectionType typeAnnotation, MetadataBuildingContext buildingContext)
void
setAccessType(AccessType accessType)
void
setBatchSize(BatchSize batchSize)
void
setCache(Cache cacheAnn)
void
setCascadeDeleteEnabled(boolean onDeleteCascade)
void
setCascadeStrategy(String cascadeStrategy)
void
setCollectionType(org.hibernate.annotations.common.reflection.XClass collectionType)
Deprecated.: UsesetElementType(XClass)
instead.void
setComparatorSort(SortComparator comparatorSort)
void
setDeclaringClass(org.hibernate.annotations.common.reflection.XClass declaringClass)
void
setElementColumns(AnnotatedColumn[] elementColumns)
void
setElementType(org.hibernate.annotations.common.reflection.XClass collectionElementType)
void
setEmbedded(boolean annotationPresent)
void
setExplicitAssociationTable(boolean explicitAssocTable)
void
setFkJoinColumns(AnnotatedJoinColumn[] annotatedJoinColumns)
void
setIgnoreNotFound(boolean ignoreNotFound)
void
setIndexColumn(IndexColumn indexColumn)
void
setInheritanceStatePerClass(Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass)
void
setInsertable(boolean insertable)
void
setInverseJoinColumns(AnnotatedJoinColumn[] inverseJoinColumns)
protected void
setIsHibernateExtensionMapping(boolean hibernateExtensionMapping)
void
setJoinColumns(AnnotatedJoinColumn[] joinColumns)
void
setJpaOrderBy(jakarta.persistence.OrderBy jpaOrderBy)
void
setLocalGenerators(Map<String,IdentifierGeneratorDefinition> localGenerators)
void
setMapKey(jakarta.persistence.MapKey key)
void
setMapKeyColumns(AnnotatedColumn[] mapKeyColumns)
void
setMapKeyManyToManyColumns(AnnotatedJoinColumn[] mapJoinColumns)
void
setMappedBy(String mappedBy)
void
setNaturalSort(SortNatural naturalSort)
void
setNotFoundAction(NotFoundAction notFoundAction)
void
setOneToMany(boolean oneToMany)
void
setProperty(org.hibernate.annotations.common.reflection.XProperty property)
void
setPropertyHolder(PropertyHolder propertyHolder)
void
setPropertyName(String propertyName)
void
setSqlOrderBy(OrderBy sqlOrderBy)
void
setTableBinder(TableBinder tableBinder)
void
setTargetEntity(org.hibernate.annotations.common.reflection.XClass targetEntity)
void
setUpdatable(boolean updatable)
-
-
-
Field Detail
-
collection
protected Collection collection
-
propertyName
protected String propertyName
-
indexColumn
protected IndexColumn indexColumn
-
cascadeDeleteEnabled
protected boolean cascadeDeleteEnabled
-
mapKeyPropertyName
protected String mapKeyPropertyName
-
localGenerators
protected Map<String,IdentifierGeneratorDefinition> localGenerators
-
inheritanceStatePerClass
protected Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass
-
-
Constructor Detail
-
CollectionBinder
protected CollectionBinder(Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver, boolean isSortedCollection, MetadataBuildingContext buildingContext)
-
-
Method Detail
-
bindCollection
public static void bindCollection(PropertyHolder propertyHolder, Nullability nullability, PropertyData inferredData, Map<String,IdentifierGeneratorDefinition> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, MetadataBuildingContext context, Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass, org.hibernate.annotations.common.reflection.XProperty property, AnnotatedJoinColumn[] joinColumns)
-
getBuildingContext
protected MetadataBuildingContext getBuildingContext()
-
getCustomTypeBeanResolver
public Supplier<ManagedBean<? extends UserCollectionType>> getCustomTypeBeanResolver()
-
isMap
public boolean isMap()
-
setIsHibernateExtensionMapping
protected void setIsHibernateExtensionMapping(boolean hibernateExtensionMapping)
-
isHibernateExtensionMapping
protected boolean isHibernateExtensionMapping()
-
setUpdatable
public void setUpdatable(boolean updatable)
-
setInheritanceStatePerClass
public void setInheritanceStatePerClass(Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass)
-
setInsertable
public void setInsertable(boolean insertable)
-
setCascadeStrategy
public void setCascadeStrategy(String cascadeStrategy)
-
setAccessType
public void setAccessType(AccessType accessType)
-
setInverseJoinColumns
public void setInverseJoinColumns(AnnotatedJoinColumn[] inverseJoinColumns)
-
setJoinColumns
public void setJoinColumns(AnnotatedJoinColumn[] joinColumns)
-
setPropertyHolder
public void setPropertyHolder(PropertyHolder propertyHolder)
-
setBatchSize
public void setBatchSize(BatchSize batchSize)
-
setJpaOrderBy
public void setJpaOrderBy(jakarta.persistence.OrderBy jpaOrderBy)
-
setSqlOrderBy
public void setSqlOrderBy(OrderBy sqlOrderBy)
-
setNaturalSort
public void setNaturalSort(SortNatural naturalSort)
-
setComparatorSort
public void setComparatorSort(SortComparator comparatorSort)
-
getCollectionBinder
public static CollectionBinder getCollectionBinder(org.hibernate.annotations.common.reflection.XProperty property, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext)
collection binder factory
-
resolveCustomType
public static ManagedBean<? extends UserCollectionType> resolveCustomType(org.hibernate.annotations.common.reflection.XProperty property, CollectionType typeAnnotation, MetadataBuildingContext buildingContext)
-
setMappedBy
public void setMappedBy(String mappedBy)
-
setTableBinder
public void setTableBinder(TableBinder tableBinder)
-
setCollectionType
@Deprecated(since="6.1") public void setCollectionType(org.hibernate.annotations.common.reflection.XClass collectionType)
Deprecated.: UsesetElementType(XClass)
instead.
-
setElementType
public void setElementType(org.hibernate.annotations.common.reflection.XClass collectionElementType)
-
setTargetEntity
public void setTargetEntity(org.hibernate.annotations.common.reflection.XClass targetEntity)
-
createCollection
protected abstract Collection createCollection(PersistentClass persistentClass)
-
getCollection
public Collection getCollection()
-
setPropertyName
public void setPropertyName(String propertyName)
-
setDeclaringClass
public void setDeclaringClass(org.hibernate.annotations.common.reflection.XClass declaringClass)
-
bind
public void bind()
-
getSecondPass
public SecondPass getSecondPass(AnnotatedJoinColumn[] fkJoinColumns, AnnotatedJoinColumn[] keyColumns, AnnotatedJoinColumn[] inverseColumns, AnnotatedColumn[] elementColumns, AnnotatedColumn[] mapKeyColumns, AnnotatedJoinColumn[] mapKeyManyToManyColumns, boolean isEmbedded, org.hibernate.annotations.common.reflection.XProperty property, org.hibernate.annotations.common.reflection.XClass elementType, NotFoundAction notFoundAction, boolean unique, TableBinder assocTableBinder, MetadataBuildingContext buildingContext)
-
bindStarToManySecondPass
protected boolean bindStarToManySecondPass(Map<String,PersistentClass> persistentClasses, org.hibernate.annotations.common.reflection.XClass elementType, AnnotatedJoinColumn[] fkJoinColumns, AnnotatedJoinColumn[] keyColumns, AnnotatedJoinColumn[] inverseColumns, AnnotatedColumn[] elementColumns, boolean isEmbedded, org.hibernate.annotations.common.reflection.XProperty property, boolean unique, TableBinder associationTableBinder, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext)
return true if it's a Fk, false if it's an association table
-
bindOneToManySecondPass
protected void bindOneToManySecondPass(Collection collection, Map<String,PersistentClass> persistentClasses, AnnotatedJoinColumn[] fkJoinColumns, org.hibernate.annotations.common.reflection.XClass collectionType, boolean cascadeDeleteEnabled, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext, Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass)
-
setCache
public void setCache(Cache cacheAnn)
-
setOneToMany
public void setOneToMany(boolean oneToMany)
-
setIndexColumn
public void setIndexColumn(IndexColumn indexColumn)
-
setMapKey
public void setMapKey(jakarta.persistence.MapKey key)
-
adjustUserSuppliedValueCollectionOrderingFragment
public static String adjustUserSuppliedValueCollectionOrderingFragment(String orderByFragment)
-
setCascadeDeleteEnabled
public void setCascadeDeleteEnabled(boolean onDeleteCascade)
-
bindManytoManyInverseFk
public void bindManytoManyInverseFk(PersistentClass referencedEntity, AnnotatedJoinColumn[] columns, SimpleValue value, boolean unique, MetadataBuildingContext buildingContext)
bind the inverse FK of aManyToMany
. If we are in a mappedBy case, read the columns from the associated collection element Otherwise delegates to the usual algorithm
-
setFkJoinColumns
public void setFkJoinColumns(AnnotatedJoinColumn[] annotatedJoinColumns)
-
setExplicitAssociationTable
public void setExplicitAssociationTable(boolean explicitAssocTable)
-
setElementColumns
public void setElementColumns(AnnotatedColumn[] elementColumns)
-
setEmbedded
public void setEmbedded(boolean annotationPresent)
-
setProperty
public void setProperty(org.hibernate.annotations.common.reflection.XProperty property)
-
getNotFoundAction
public NotFoundAction getNotFoundAction()
-
setNotFoundAction
public void setNotFoundAction(NotFoundAction notFoundAction)
-
setIgnoreNotFound
public void setIgnoreNotFound(boolean ignoreNotFound)
-
setMapKeyColumns
public void setMapKeyColumns(AnnotatedColumn[] mapKeyColumns)
-
setMapKeyManyToManyColumns
public void setMapKeyManyToManyColumns(AnnotatedJoinColumn[] mapJoinColumns)
-
setLocalGenerators
public void setLocalGenerators(Map<String,IdentifierGeneratorDefinition> localGenerators)
-
-