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 booleancascadeDeleteEnabledprotected Collectioncollectionprotected IndexColumnindexColumnprotected Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState>inheritanceStatePerClassprotected Map<String,IdentifierGeneratorDefinition>localGeneratorsprotected StringmapKeyPropertyNameprotected StringpropertyName
-
Constructor Summary
Constructors Modifier Constructor Description protectedCollectionBinder(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 StringadjustUserSuppliedValueCollectionOrderingFragment(String orderByFragment)voidbind()static voidbindCollection(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)voidbindManytoManyInverseFk(PersistentClass referencedEntity, AnnotatedJoinColumn[] columns, SimpleValue value, boolean unique, MetadataBuildingContext buildingContext)bind the inverse FK of aManyToMany.protected voidbindOneToManySecondPass(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 booleanbindStarToManySecondPass(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 CollectioncreateCollection(PersistentClass persistentClass)protected MetadataBuildingContextgetBuildingContext()CollectiongetCollection()static CollectionBindergetCollectionBinder(org.hibernate.annotations.common.reflection.XProperty property, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext)collection binder factorySupplier<ManagedBean<? extends UserCollectionType>>getCustomTypeBeanResolver()NotFoundActiongetNotFoundAction()SecondPassgetSecondPass(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 booleanisHibernateExtensionMapping()booleanisMap()static ManagedBean<? extends UserCollectionType>resolveCustomType(org.hibernate.annotations.common.reflection.XProperty property, CollectionType typeAnnotation, MetadataBuildingContext buildingContext)voidsetAccessType(AccessType accessType)voidsetBatchSize(BatchSize batchSize)voidsetCache(Cache cacheAnn)voidsetCascadeDeleteEnabled(boolean onDeleteCascade)voidsetCascadeStrategy(String cascadeStrategy)voidsetCollectionType(org.hibernate.annotations.common.reflection.XClass collectionType)Deprecated.: UsesetElementType(XClass)instead.voidsetComparatorSort(SortComparator comparatorSort)voidsetDeclaringClass(org.hibernate.annotations.common.reflection.XClass declaringClass)voidsetElementColumns(AnnotatedColumn[] elementColumns)voidsetElementType(org.hibernate.annotations.common.reflection.XClass collectionElementType)voidsetEmbedded(boolean annotationPresent)voidsetExplicitAssociationTable(boolean explicitAssocTable)voidsetFkJoinColumns(AnnotatedJoinColumn[] annotatedJoinColumns)voidsetIgnoreNotFound(boolean ignoreNotFound)voidsetIndexColumn(IndexColumn indexColumn)voidsetInheritanceStatePerClass(Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass)voidsetInsertable(boolean insertable)voidsetInverseJoinColumns(AnnotatedJoinColumn[] inverseJoinColumns)protected voidsetIsHibernateExtensionMapping(boolean hibernateExtensionMapping)voidsetJoinColumns(AnnotatedJoinColumn[] joinColumns)voidsetJpaOrderBy(jakarta.persistence.OrderBy jpaOrderBy)voidsetLocalGenerators(Map<String,IdentifierGeneratorDefinition> localGenerators)voidsetMapKey(jakarta.persistence.MapKey key)voidsetMapKeyColumns(AnnotatedColumn[] mapKeyColumns)voidsetMapKeyManyToManyColumns(AnnotatedJoinColumn[] mapJoinColumns)voidsetMappedBy(String mappedBy)voidsetNaturalSort(SortNatural naturalSort)voidsetNotFoundAction(NotFoundAction notFoundAction)voidsetOneToMany(boolean oneToMany)voidsetProperty(org.hibernate.annotations.common.reflection.XProperty property)voidsetPropertyHolder(PropertyHolder propertyHolder)voidsetPropertyName(String propertyName)voidsetSqlOrderBy(OrderBy sqlOrderBy)voidsetTableBinder(TableBinder tableBinder)voidsetTargetEntity(org.hibernate.annotations.common.reflection.XClass targetEntity)voidsetUpdatable(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)
-
-