Class CollectionBinder
java.lang.Object
org.hibernate.boot.model.internal.CollectionBinder
- Direct Known Subclasses:
BagBinder,ListBinder,MapBinder,SetBinder
Base class for stateful binders responsible for producing mapping model objects of type
Collection.- Author:
- inger, Emmanuel Bernard
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Collectionprotected AnnotatedJoinColumnsprotected booleanprotected IndexColumnprotected Map<XClass,InheritanceState> protected AnnotatedJoinColumnsprotected booleanprotected Map<String,IdentifierGeneratorDefinition> protected AnnotatedColumnsprotected AnnotatedJoinColumnsprotected Stringprotected NotFoundActionprotected OnDeleteActionprotected XPropertyprotected PropertyHolderprotected String -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCollectionBinder(Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver, boolean isSortedCollection, MetadataBuildingContext buildingContext) -
Method Summary
Modifier and TypeMethodDescriptionstatic StringadjustUserSuppliedValueCollectionOrderingFragment(String orderByFragment) voidbind()static voidbindCollection(PropertyHolder propertyHolder, Nullability nullability, PropertyData inferredData, Map<String, IdentifierGeneratorDefinition> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, MetadataBuildingContext context, Map<XClass, InheritanceState> inheritanceStatePerClass, 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 MetadataBuildingContextstatic CollectionBindergetCollectionBinder(XProperty property, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext) collection binder factorySupplier<ManagedBean<? extends UserCollectionType>>protected booleanbooleanisMap()protected booleanstatic ManagedBean<? extends UserCollectionType>resolveCustomType(XProperty property, CollectionType typeAnnotation, MetadataBuildingContext context) voidsetAccessType(AccessType accessType) voidvoidsetCascadeStrategy(String cascadeStrategy) voidsetComparatorSort(SortComparator comparatorSort) voidsetDeclaringClass(XClass declaringClass) voidsetElementColumns(AnnotatedColumns elementColumns) voidsetElementType(XClass collectionElementType) voidsetEmbedded(boolean annotationPresent) voidsetExplicitAssociationTable(boolean isExplicitAssociationTable) voidsetFkJoinColumns(AnnotatedJoinColumns annotatedJoinColumns) voidsetIndexColumn(IndexColumn indexColumn) voidsetInheritanceStatePerClass(Map<XClass, InheritanceState> inheritanceStatePerClass) voidsetInsertable(boolean insertable) voidsetInverseJoinColumns(AnnotatedJoinColumns inverseJoinColumns) protected voidsetIsHibernateExtensionMapping(boolean hibernateExtensionMapping) voidsetJoinColumns(AnnotatedJoinColumns joinColumns) voidsetJpaOrderBy(OrderBy jpaOrderBy) voidsetLocalGenerators(Map<String, IdentifierGeneratorDefinition> localGenerators) voidvoidsetMapKeyColumns(AnnotatedColumns mapKeyColumns) voidsetMapKeyManyToManyColumns(AnnotatedJoinColumns mapJoinColumns) voidsetMappedBy(String mappedBy) voidsetNaturalSort(SortNatural naturalSort) voidsetNotFoundAction(NotFoundAction notFoundAction) voidsetOnDeleteActionAction(OnDeleteAction onDeleteAction) voidsetOneToMany(boolean oneToMany) voidsetProperty(XProperty property) voidsetPropertyHolder(PropertyHolder propertyHolder) voidsetPropertyName(String propertyName) voidsetQueryCacheLayout(QueryCacheLayout queryCacheLayout) voidsetSqlOrder(SQLOrder sqlOrder) voidsetSqlOrderBy(OrderBy sqlOrderBy) voidsetTableBinder(TableBinder tableBinder) voidsetTargetEntity(XClass targetEntity) voidsetUpdatable(boolean updatable)
-
Field Details
-
collection
-
propertyName
-
propertyHolder
-
indexColumn
-
onDeleteAction
-
hasMapKeyProperty
protected boolean hasMapKeyProperty -
mapKeyPropertyName
-
inverseJoinColumns
-
foreignJoinColumns
-
isEmbedded
protected boolean isEmbedded -
property
-
notFoundAction
-
mapKeyColumns
-
mapKeyManyToManyColumns
-
localGenerators
-
inheritanceStatePerClass
-
-
Constructor Details
-
CollectionBinder
protected CollectionBinder(Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver, boolean isSortedCollection, MetadataBuildingContext buildingContext)
-
-
Method Details
-
bindCollection
public static void bindCollection(PropertyHolder propertyHolder, Nullability nullability, PropertyData inferredData, Map<String, IdentifierGeneratorDefinition> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, MetadataBuildingContext context, Map<XClass, InheritanceState> inheritanceStatePerClass, XProperty property, AnnotatedJoinColumns joinColumns) The first pass at binding a collection. -
getBuildingContext
-
getCustomTypeBeanResolver
-
isMap
public boolean isMap() -
setIsHibernateExtensionMapping
protected void setIsHibernateExtensionMapping(boolean hibernateExtensionMapping) -
isHibernateExtensionMapping
protected boolean isHibernateExtensionMapping() -
setUpdatable
public void setUpdatable(boolean updatable) -
setInheritanceStatePerClass
-
setInsertable
public void setInsertable(boolean insertable) -
setCascadeStrategy
-
setAccessType
-
setInverseJoinColumns
-
setJoinColumns
-
setPropertyHolder
-
setJpaOrderBy
-
setSqlOrderBy
-
setSqlOrder
-
setNaturalSort
-
setComparatorSort
-
getCollectionBinder
public static CollectionBinder getCollectionBinder(XProperty property, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext) collection binder factory -
resolveCustomType
public static ManagedBean<? extends UserCollectionType> resolveCustomType(XProperty property, CollectionType typeAnnotation, MetadataBuildingContext context) -
setMappedBy
-
setTableBinder
-
setElementType
-
setTargetEntity
-
createCollection
-
getCollection
-
setPropertyName
-
setDeclaringClass
-
bind
public void bind() -
bindStarToManySecondPass
return true if it's a Fk, false if it's an association table -
bindOneToManySecondPass
Bind aOneToManyassociation. -
setCache
-
setQueryCacheLayout
-
setOneToMany
public void setOneToMany(boolean oneToMany) -
setIndexColumn
-
setMapKey
-
adjustUserSuppliedValueCollectionOrderingFragment
-
mappingDefinedAttributeOverrideOnElement
-
setOnDeleteActionAction
-
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
-
setExplicitAssociationTable
public void setExplicitAssociationTable(boolean isExplicitAssociationTable) -
setElementColumns
-
setEmbedded
public void setEmbedded(boolean annotationPresent) -
setProperty
-
getNotFoundAction
-
setNotFoundAction
-
setMapKeyColumns
-
setMapKeyManyToManyColumns
-
setLocalGenerators
-