Class CollectionBinder
- java.lang.Object
-
- org.hibernate.boot.model.internal.CollectionBinder
-
- Direct Known Subclasses:
BagBinder,ListBinder,MapBinder,SetBinder
public abstract class CollectionBinder extends Object
Base class for stateful binders responsible for producing mapping model objects of typeCollection.
-
-
Field Summary
Fields Modifier and Type Field Description protected Collectioncollectionprotected AnnotatedJoinColumnsforeignJoinColumnsprotected booleanhasMapKeyPropertyprotected IndexColumnindexColumnprotected Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState>inheritanceStatePerClassprotected AnnotatedJoinColumnsinverseJoinColumnsprotected booleanisEmbeddedprotected Map<String,IdentifierGeneratorDefinition>localGeneratorsprotected AnnotatedColumnsmapKeyColumnsprotected AnnotatedJoinColumnsmapKeyManyToManyColumnsprotected StringmapKeyPropertyNameprotected NotFoundActionnotFoundActionprotected OnDeleteActiononDeleteActionprotected org.hibernate.annotations.common.reflection.XPropertypropertyprotected PropertyHolderpropertyHolderprotected 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 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, AnnotatedJoinColumns joinColumns)The first pass at binding a collection.voidbindManyToManyInverseForeignKey(PersistentClass targetEntity, AnnotatedJoinColumns joinColumns, SimpleValue value, boolean unique)Bind the inverse foreign key of aManyToMany, that is, the columns specified by@JoinTable(inverseJoinColumns=...), which are the columns that reference the target entity of the many-to-many association.protected voidbindOneToManySecondPass(Map<String,PersistentClass> persistentClasses)Bind aOneToManyassociation.protected booleanbindStarToManySecondPass(Map<String,PersistentClass> persistentClasses)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()protected booleanisHibernateExtensionMapping()booleanisMap()protected booleanmappingDefinedAttributeOverrideOnElement(org.hibernate.annotations.common.reflection.XProperty property)static ManagedBean<? extends UserCollectionType>resolveCustomType(org.hibernate.annotations.common.reflection.XProperty property, CollectionType typeAnnotation, MetadataBuildingContext context)voidsetAccessType(AccessType accessType)voidsetCache(Cache cache)voidsetCascadeStrategy(String cascadeStrategy)voidsetComparatorSort(SortComparator comparatorSort)voidsetDeclaringClass(org.hibernate.annotations.common.reflection.XClass declaringClass)voidsetElementColumns(AnnotatedColumns elementColumns)voidsetElementType(org.hibernate.annotations.common.reflection.XClass collectionElementType)voidsetEmbedded(boolean annotationPresent)voidsetExplicitAssociationTable(boolean isExplicitAssociationTable)voidsetFkJoinColumns(AnnotatedJoinColumns annotatedJoinColumns)voidsetIndexColumn(IndexColumn indexColumn)voidsetInheritanceStatePerClass(Map<org.hibernate.annotations.common.reflection.XClass,InheritanceState> inheritanceStatePerClass)voidsetInsertable(boolean insertable)voidsetInverseJoinColumns(AnnotatedJoinColumns inverseJoinColumns)protected voidsetIsHibernateExtensionMapping(boolean hibernateExtensionMapping)voidsetJoinColumns(AnnotatedJoinColumns joinColumns)voidsetJpaOrderBy(OrderBy jpaOrderBy)voidsetLocalGenerators(Map<String,IdentifierGeneratorDefinition> localGenerators)voidsetMapKey(MapKey key)voidsetMapKeyColumns(AnnotatedColumns mapKeyColumns)voidsetMapKeyManyToManyColumns(AnnotatedJoinColumns mapJoinColumns)voidsetMappedBy(String mappedBy)voidsetNaturalSort(SortNatural naturalSort)voidsetNotFoundAction(NotFoundAction notFoundAction)voidsetOnDeleteActionAction(OnDeleteAction onDeleteAction)voidsetOneToMany(boolean oneToMany)voidsetProperty(org.hibernate.annotations.common.reflection.XProperty property)voidsetPropertyHolder(PropertyHolder propertyHolder)voidsetPropertyName(String propertyName)voidsetQueryCacheLayout(QueryCacheLayout queryCacheLayout)voidsetSqlOrder(SQLOrder sqlOrder)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
-
propertyHolder
protected PropertyHolder propertyHolder
-
indexColumn
protected IndexColumn indexColumn
-
onDeleteAction
protected OnDeleteAction onDeleteAction
-
hasMapKeyProperty
protected boolean hasMapKeyProperty
-
mapKeyPropertyName
protected String mapKeyPropertyName
-
inverseJoinColumns
protected AnnotatedJoinColumns inverseJoinColumns
-
foreignJoinColumns
protected AnnotatedJoinColumns foreignJoinColumns
-
isEmbedded
protected boolean isEmbedded
-
property
protected org.hibernate.annotations.common.reflection.XProperty property
-
notFoundAction
protected NotFoundAction notFoundAction
-
mapKeyColumns
protected AnnotatedColumns mapKeyColumns
-
mapKeyManyToManyColumns
protected AnnotatedJoinColumns mapKeyManyToManyColumns
-
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, AnnotatedJoinColumns joinColumns)
The first pass at binding a collection.
-
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(AnnotatedJoinColumns inverseJoinColumns)
-
setJoinColumns
public void setJoinColumns(AnnotatedJoinColumns joinColumns)
-
setPropertyHolder
public void setPropertyHolder(PropertyHolder propertyHolder)
-
setJpaOrderBy
public void setJpaOrderBy(OrderBy jpaOrderBy)
-
setSqlOrderBy
public void setSqlOrderBy(OrderBy sqlOrderBy)
-
setSqlOrder
public void setSqlOrder(SQLOrder sqlOrder)
-
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 context)
-
setMappedBy
public void setMappedBy(String mappedBy)
-
setTableBinder
public void setTableBinder(TableBinder tableBinder)
-
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()
-
bindStarToManySecondPass
protected boolean bindStarToManySecondPass(Map<String,PersistentClass> persistentClasses)
return true if it's a Fk, false if it's an association table
-
bindOneToManySecondPass
protected void bindOneToManySecondPass(Map<String,PersistentClass> persistentClasses)
Bind aOneToManyassociation.
-
setCache
public void setCache(Cache cache)
-
setQueryCacheLayout
public void setQueryCacheLayout(QueryCacheLayout queryCacheLayout)
-
setOneToMany
public void setOneToMany(boolean oneToMany)
-
setIndexColumn
public void setIndexColumn(IndexColumn indexColumn)
-
setMapKey
public void setMapKey(MapKey key)
-
adjustUserSuppliedValueCollectionOrderingFragment
public static String adjustUserSuppliedValueCollectionOrderingFragment(String orderByFragment)
-
mappingDefinedAttributeOverrideOnElement
protected boolean mappingDefinedAttributeOverrideOnElement(org.hibernate.annotations.common.reflection.XProperty property)
-
setOnDeleteActionAction
public void setOnDeleteActionAction(OnDeleteAction onDeleteAction)
-
bindManyToManyInverseForeignKey
public void bindManyToManyInverseForeignKey(PersistentClass targetEntity, AnnotatedJoinColumns joinColumns, SimpleValue value, boolean unique)
Bind the inverse foreign key of aManyToMany, that is, the columns specified by@JoinTable(inverseJoinColumns=...), which are the columns that reference the target entity of the many-to-many association. If we are in amappedBycase, read the columns from the associated collection element in the target entity.
-
setFkJoinColumns
public void setFkJoinColumns(AnnotatedJoinColumns annotatedJoinColumns)
-
setExplicitAssociationTable
public void setExplicitAssociationTable(boolean isExplicitAssociationTable)
-
setElementColumns
public void setElementColumns(AnnotatedColumns 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)
-
setMapKeyColumns
public void setMapKeyColumns(AnnotatedColumns mapKeyColumns)
-
setMapKeyManyToManyColumns
public void setMapKeyManyToManyColumns(AnnotatedJoinColumns mapJoinColumns)
-
setLocalGenerators
public void setLocalGenerators(Map<String,IdentifierGeneratorDefinition> localGenerators)
-
-