Top Description Fields Constructors Methods
org.hibernate.boot.model.internal

public abstract Class CollectionBinder

extends Object
Class Inheritance
Known Direct Subclasses
org.hibernate.boot.model.internal.ListBinder, org.hibernate.boot.model.internal.MapBinder, org.hibernate.boot.model.internal.BagBinder, org.hibernate.boot.model.internal.SetBinder
Imports
java.lang.annotation.Annotation, java.util.Comparator, .HashMap, .List, .Locale, .Map, .Properties, java.util.function.Supplier, org.hibernate.AnnotationException, .AssertionFailure, .FetchMode, .MappingException, org.hibernate.annotations.Bag, .BatchSize, .Cache, .Cascade, .Check, .Checks, .CollectionId, .CollectionIdJavaType, .CollectionIdJdbcType, .CollectionIdJdbcTypeCode, .CollectionType, .Columns, .CompositeType, .Fetch, .FetchProfileOverride, .FetchProfileOverrides, .Filter, .FilterJoinTable, .FilterJoinTables, .Filters, .Formula, .HQLSelect, .Immutable, .LazyCollection, .LazyCollectionOption, .LazyGroup, .ListIndexBase, .ListIndexJavaType, .ListIndexJdbcType, .ListIndexJdbcTypeCode, .Loader, .ManyToAny, .MapKeyJavaType, .MapKeyJdbcType, .MapKeyJdbcTypeCode, .MapKeyMutability, .MapKeyType, .NotFound, .NotFoundAction, .OnDelete, .OnDeleteAction, .OptimisticLock, .Parameter, .Persister, .SQLDelete, .SQLDeleteAll, .SQLInsert, .SQLJoinTableRestriction, .SQLOrder, .SQLRestriction, .SQLSelect, .SQLUpdate, .SoftDelete, .SortComparator, .SortNatural, .Synchronize, .Where, .WhereJoinTable, org.hibernate.annotations.common.reflection.ReflectionManager, .XClass, .XProperty, org.hibernate.boot.BootLogging, org.hibernate.boot.model.IdentifierGeneratorDefinition, .TypeDefinition, org.hibernate.boot.spi.AccessType, .InFlightMetadataCollector, .InFlightMetadataCollector.CollectionTypeRegistrationDescriptor, .MetadataBuildingContext, .PropertyData, .SecondPass, org.hibernate.engine.jdbc.env.spi.JdbcEnvironment, org.hibernate.engine.spi.FilterDefinition, org.hibernate.internal.CoreMessageLogger, org.hibernate.internal.util.collections.CollectionHelper, org.hibernate.mapping.Any, .Backref, .BasicValue, .CheckConstraint, .Collection, .Column, .Component, .DependantValue, .Join, .KeyValue, .ManyToOne, .MappingHelper, .PersistentClass, .Property, .Selectable, .SimpleValue, .Table, .Value, org.hibernate.metamodel.CollectionClassification, .UnsupportedMappingException, org.hibernate.metamodel.spi.EmbeddableInstantiator, org.hibernate.persister.collection.CollectionPersister, org.hibernate.resource.beans.spi.ManagedBean, .ManagedBeanRegistry, org.hibernate.usertype.CompositeUserType, .ParameterizedType, .UserCollectionType, org.jboss.logging.Logger, jakarta.persistence.Access, .AttributeOverride, .AttributeOverrides, .CollectionTable, .ConstraintMode, .ElementCollection, .Embedded, .FetchType, .ForeignKey, .Index, .JoinColumn, .JoinColumns, .JoinTable, .ManyToMany, .MapKey, .MapKeyColumn, .MapKeyJoinColumn, .MapKeyJoinColumns, .OneToMany, .OrderBy, .OrderColumn, .UniqueConstraint

Base class for stateful binders responsible for producing mapping model objects of type Collection.
Authors
inger, Emmanuel Bernard

Field Summary

Modifier and TypeField and Description
private AccessType
private int
pack-priv final MetadataBuildingContext
private String
private String
private String
protected Collection
private XClass
private SortComparator
private final Supplier<ManagedBean<? extends UserCollectionType>>
private XClass
private boolean
private AnnotatedColumns
private String
private final Map<String, String>
protected AnnotatedJoinColumns
protected boolean
private boolean
protected IndexColumn
private static final List<Class<?>>
protected Map<XClass, InheritanceState>
private boolean
protected AnnotatedJoinColumns
protected boolean
private boolean
private final boolean
private AnnotatedJoinColumns
private OrderBy
protected Map<String, IdentifierGeneratorDefinition>
private static final CoreMessageLogger
protected AnnotatedColumns
protected AnnotatedJoinColumns
protected String
private String
private SortNatural
protected NotFoundAction
protected OnDeleteAction
private boolean
protected XProperty
protected PropertyHolder
protected String
private SQLOrder
private OrderBy
sqlOrderBy

Deprecated as a consequence of OrderBy being deprecated.
private TableBinder
private XClass
private boolean

Constructor Summary

AccessConstructor and Description
protected
CollectionBinder(Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanResolver, boolean isSortedCollection, MetadataBuildingContext buildingContext)

Method Summary

Modifier and TypeMethod and Description
pack-priv static AccessType
private static void
addCheckToCollection(Table collectionTable, Check check)

private void
addFilter(boolean hasAssociationTable, Filter filter)

private void
addFilter(boolean hasAssociationTable, FilterJoinTable filter)

public static String
private AnnotatedClassType
annotatedElementType(boolean isEmbedded, XProperty property, XClass elementType)

private static String
annotationName(OneToMany oneToMany, ManyToMany manyToMany, ElementCollection elementCollection)

private void
public void
bind()

private void
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.

private void
private void
private void
private void
bindFilters(boolean hasAssociationTable)

private static void
bindJoinedTableAssociation(XProperty property, MetadataBuildingContext buildingContext, EntityBinder entityBinder, CollectionBinder collectionBinder, PropertyHolder propertyHolder, PropertyData inferredData, String mappedBy)

private void
public void
bindManyToManyInverseForeignKey(PersistentClass targetEntity, AnnotatedJoinColumns joinColumns, SimpleValue value, boolean unique)

Bind the inverse foreign key of a ManyToMany, that is, the columns specified by @JoinTable(inverseJoinColumns=...), which are the columns that reference the target entity of the many-to-many association.

private void
protected void
bindOneToManySecondPass(Map<String, PersistentClass> persistentClasses)

Bind a OneToMany association.

private void
bindOptimisticLock(boolean isMappedBy)

private void
private void
protected boolean
bindStarToManySecondPass(Map<String, PersistentClass> persistentClasses)

return true if it's a Fk, false if it's an association table

private void
private void
private DependantValue
private AnnotationException
private AnnotationException
private AnnotationException
private static String
buildOrderByClauseFromHql(String orderByFragment, PersistentClass associatedClass)

private static String
buildOrderById(PersistentClass associatedClass, String order)

private static void
checkAnnotations(PropertyHolder propertyHolder, PropertyData inferredData, XProperty property, OneToMany oneToMany, ManyToMany manyToMany, ElementCollection elementCollection)

private static void
private static void
private static void
private void
private static CollectionBinder
createBinder(XProperty property, Supplier<ManagedBean<? extends UserCollectionType>> customTypeBeanAccess, CollectionClassification classification, MetadataBuildingContext buildingContext)

private static CollectionBinder
private static CollectionBinder
private static CollectionBinder
private static CollectionBinder
protected abstract Collection
private static ManagedBean<? extends UserCollectionType>
createCustomType(String role, Class<? extends UserCollectionType> implementation, Map<String, String> parameters, MetadataBuildingContext buildingContext)

pack-priv static AnnotatedColumns
createElementColumnsIfNecessary(Collection collection, AnnotatedColumns elementColumns, String defaultName, Long defaultLength, MetadataBuildingContext context)

private void
private void
private void
detectManyToManyProblems(XClass elementType, boolean isCollectionOfEntities, boolean isManyToAny)

private void
detectMappedByProblem(boolean isMappedBy)

private static CollectionClassification
private static CollectionClassification
determineCollectionClassification(Class<?> semanticJavaType, XProperty property, MetadataBuildingContext buildingContext)

private static Class<?>
private static AnnotatedColumns
elementColumns(PropertyHolder propertyHolder, Nullability nullability, EntityBinder entityBinder, MetadataBuildingContext context, XProperty property, PropertyData virtualProperty)

private boolean
private String
private static Properties
private static SoftDelete
protected MetadataBuildingContext
public Collection
public static CollectionBinder
getCollectionBinder(XProperty property, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext)

collection binder factory

public Supplier<ManagedBean<? extends UserCollectionType>>
private String
pack-priv XClass
private String
private String
private static IndexColumn
getIndexColumn(PropertyHolder propertyHolder, PropertyData inferredData, EntityBinder entityBinder, MetadataBuildingContext context, XProperty property)

private FetchType
public NotFoundAction
pack-priv SecondPass
private PropertyData
getSpecialMembers(XClass elementClass)

private String
private String
private String
private String
private void
handleCheckConstraints(Table collectionTable)

private void
handleCollectionElement(XClass elementType, String hqlOrderBy, XClass elementClass, CollectionPropertyHolder holder)

private ManyToOne
handleCollectionOfEntities(XClass elementType, PersistentClass collectionEntity, String hqlOrderBy)

private void
handleCompositeCollectionElement(String hqlOrderBy, XClass elementClass, CollectionPropertyHolder holder, Class<? extends CompositeUserType<?>> compositeUserType)

private void
handleElementCollection(XClass elementType, String hqlOrderBy)

private void
private void
private static void
handleForeignKeyConstraint(boolean noConstraintByDefault, DependantValue key, ForeignKey foreignKey)

private void
handleJpaOrderBy(Collection collection, PersistentClass associatedClass)

private void
private void
private void
handleOwnedManyToMany(PersistentClass collectionEntity, boolean isCollectionOfEntities)

private static String
handleTargetEntity(PropertyHolder propertyHolder, PropertyData inferredData, MetadataBuildingContext context, XProperty property, AnnotatedJoinColumns joinColumns, OneToMany oneToManyAnn, ManyToMany manyToManyAnn, ElementCollection elementCollectionAnn, CollectionBinder collectionBinder, Cascade hibernateCascade)

private void
handleUnownedManyToMany(XClass elementType, PersistentClass collectionEntity, boolean isCollectionOfEntities)

private void
handleWhere(boolean hasAssociationTable)

private static boolean
private boolean
private static Class<?>
private void
instantiateComparator(Collection collection, Class<? extends Comparator<?>> comparatorClass)

protected boolean
public boolean
private boolean
private boolean
isReversePropertyInJoin(XClass elementType, PersistentClass persistentClass, Map<String, PersistentClass> persistentClasses)

private static boolean
private boolean
private void
logManyToManySecondPass(boolean isOneToMany, boolean isCollectionOfEntities, boolean isManyToAny)

private void
private static AnnotatedColumns
mapKeyColumns(PropertyHolder propertyHolder, PropertyData inferredData, EntityBinder entityBinder, MetadataBuildingContext context, XProperty property)

private static JoinColumn[]
mapKeyJoinColumnAnnotations(PropertyHolder propertyHolder, PropertyData inferredData, XProperty property)

private static AnnotatedJoinColumns
mapKeyJoinColumns(PropertyHolder propertyHolder, PropertyData inferredData, EntityBinder entityBinder, MetadataBuildingContext context, XProperty property)

private static List<Selectable>
mappedByColumns(PersistentClass referencedEntity, Property property)

private boolean
private static NotFoundAction
notFoundAction(PropertyHolder propertyHolder, PropertyData inferredData, XProperty property, ManyToMany manyToManyAnn)

private static OnDeleteAction
private void
private void
private static Class<? extends CompositeUserType<?>>
private Class<? extends EmbeddableInstantiator>
public static ManagedBean<? extends UserCollectionType>
pack-priv String
private void
scheduleSecondPass(boolean isMappedBy)

public void
public void
public void
setCache(Cache cache)

public void
setCascadeStrategy(String cascadeStrategy)

public void
public void
setDeclaringClass(XClass declaringClass)

public void
public void
setElementType(XClass collectionElementType)

public void
setEmbedded(boolean annotationPresent)

public void
setExplicitAssociationTable(boolean isExplicitAssociationTable)

public void
setFkJoinColumns(AnnotatedJoinColumns annotatedJoinColumns)

private void
public void
public void
public void
setInsertable(boolean insertable)

public void
protected void
setIsHibernateExtensionMapping(boolean hibernateExtensionMapping)

public void
public void
setJpaOrderBy(OrderBy jpaOrderBy)

public void
public void
public void
public void
public void
setMappedBy(String mappedBy)

public void
public void
public void
public void
setOneToMany(boolean oneToMany)

public void
public void
public void
setPropertyName(String propertyName)

public void
public void
setSqlOrderBy(OrderBy sqlOrderBy)

Deprecated as a consequence of OrderBy being deprecated.
public void
public void
setTargetEntity(XClass targetEntity)

public void
setUpdatable(boolean updatable)

private String
toPhysicalName(JdbcEnvironment jdbcEnvironment, String logicalName)

private static PropertyData
virtualPropertyData(PropertyData inferredData, XProperty property)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait