Top Description Fields Constructors Methods
org.hibernate.cfg.annotations

public abstract Class CollectionBinder

extends Object
Class Inheritance
Known Direct Subclasses
org.hibernate.cfg.annotations.ListBinder, org.hibernate.cfg.annotations.MapBinder, org.hibernate.cfg.annotations.SetBinder, org.hibernate.cfg.annotations.BagBinder
Annotations
@SuppressWarnings:unchecked, serial, WeakerAccess, deprecation
Imports
java.util.Arrays, .Collections, .Comparator, .HashMap, .Iterator, .List, .Locale, .Map, .Properties, javax.persistence.AttributeOverride, .AttributeOverrides, .CollectionTable, .ConstraintMode, .ElementCollection, .Embeddable, .FetchType, .JoinColumn, .JoinColumns, .JoinTable, .ManyToMany, .MapKey, .MapKeyColumn, .OneToMany, org.hibernate.AnnotationException, .AssertionFailure, .FetchMode, .MappingException, org.hibernate.annotations.BatchSize, .Cache, .CollectionId, .CollectionType, .Fetch, .Filter, .FilterJoinTable, .FilterJoinTables, .Filters, .ForeignKey, .Immutable, .LazyCollection, .LazyCollectionOption, .LazyGroup, .Loader, .ManyToAny, .NotFound, .NotFoundAction, .OnDelete, .OnDeleteAction, .OptimisticLock, .OrderBy, .Parameter, .Persister, .SQLDelete, .SQLDeleteAll, .SQLInsert, .SQLUpdate, .Sort, .SortComparator, .SortNatural, .SortType, .Where, .WhereJoinTable, org.hibernate.annotations.common.reflection.XClass, .XProperty, org.hibernate.boot.model.IdentifierGeneratorDefinition, .TypeDefinition, org.hibernate.boot.spi.InFlightMetadataCollector, .MetadataBuildingContext, org.hibernate.cfg.AccessType, .AnnotatedClassType, .AnnotationBinder, .AvailableSettings, .BinderHelper, .CollectionPropertyHolder, .CollectionSecondPass, .Ejb3Column, .Ejb3JoinColumn, .IndexColumn, .InheritanceState, .PropertyData, .PropertyHolder, .PropertyHolderBuilder, .PropertyInferredData, .PropertyPreloadedData, .SecondPass, org.hibernate.engine.config.spi.ConfigurationService, org.hibernate.engine.spi.ExecuteUpdateResultCheckStyle, org.hibernate.internal.CoreMessageLogger, org.hibernate.internal.util.StringHelper, org.hibernate.internal.util.config.ConfigurationHelper, org.hibernate.mapping.Any, .Backref, .Collection, .Column, .Component, .DependantValue, .Join, .KeyValue, .ManyToOne, .PersistentClass, .Property, .Selectable, .SimpleValue, .Table, org.jboss.logging.Logger

Base class for binding different types of collections to Hibernate configuration objects.
Authors
inger, Emmanuel Bernard

Field Summary

Modifier and TypeField and Description
private AccessType
private int
private MetadataBuildingContext
private String
private String
protected boolean
private String
protected Collection
private XClass
private SortComparator
private XClass
private boolean
private Sort
deprecatedSort

Deprecated as a consequence of Sort being deprecated.
private Ejb3Column[]
private String
private final Properties
private Ejb3JoinColumn[]
private boolean
protected IndexColumn
private static final List<Class<?>>
protected Map<XClass, InheritanceState>
private boolean
private Ejb3JoinColumn[]
private boolean
private boolean
private boolean
private Ejb3JoinColumn[]
private OrderBy
protected HashMap<String, IdentifierGeneratorDefinition>
private static final CoreMessageLogger
private Ejb3Column[]
private Ejb3JoinColumn[]
protected String
private String
private SortNatural
private NotFoundAction
private boolean
private XProperty
pack-priv PropertyHolder
protected String
private OrderBy
private TableBinder
private XClass
private boolean

Constructor Summary

AccessConstructor and Description
protected
CollectionBinder(boolean isSortedCollection)

Method Summary

Modifier and TypeMethod and Description
public static String
private void
public void
bind()

private static void
bindCollectionSecondPass(Collection collValue, PersistentClass collectionEntity, Ejb3JoinColumn[] joinColumns, boolean cascadeDeleteEnabled, XProperty property, PropertyHolder propertyHolder, MetadataBuildingContext buildingContext)

private void
bindFilters(boolean hasAssociationTable)

public static void
bindManytoManyInverseFk(PersistentClass referencedEntity, Ejb3JoinColumn[] columns, SimpleValue value, boolean unique, MetadataBuildingContext buildingContext)

bind the inverse FK of a ManyToMany If we are in a mappedBy case, read the columns from the associated collection element Otherwise delegates to the usual algorithm

private void
bindManyToManySecondPass(Collection collValue, Map<String, PersistentClass> persistentClasses, Ejb3JoinColumn[] joinColumns, Ejb3JoinColumn[] inverseJoinColumns, Ejb3Column[] elementColumns, boolean isEmbedded, XClass collType, NotFoundAction notFoundAction, boolean unique, boolean cascadeDeleteEnabled, TableBinder associationTableBinder, XProperty property, PropertyHolder parentPropertyHolder, MetadataBuildingContext buildingContext)

protected void
bindOneToManySecondPass(Collection collection, Map<String, PersistentClass> persistentClasses, Ejb3JoinColumn[] fkJoinColumns, XClass collectionType, boolean cascadeDeleteEnabled, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext, Map<XClass, InheritanceState> inheritanceStatePerClass)

protected boolean
bindStarToManySecondPass(Map<String, PersistentClass> persistentClasses, XClass collType, Ejb3JoinColumn[] fkJoinColumns, Ejb3JoinColumn[] keyColumns, Ejb3JoinColumn[] inverseColumns, Ejb3Column[] elementColumns, boolean isEmbedded, XProperty property, boolean unique, TableBinder associationTableBinder, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext)

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

private static SimpleValue
buildCollectionKey(Collection collValue, Ejb3JoinColumn[] joinColumns, boolean cascadeDeleteEnabled, boolean noConstraintByDefault, XProperty property, PropertyHolder propertyHolder, MetadataBuildingContext buildingContext)

private AnnotationException
private static String
buildOrderByClauseFromHql(String orderByFragment, PersistentClass associatedClass, String role)

private static void
protected abstract Collection
private void
private String
private static CollectionBinder
getBinderFromBasicCollectionType(Class<?> clazz, XProperty property, String entityName, boolean isIndexed)

protected MetadataBuildingContext
public Collection
public static CollectionBinder
getCollectionBinder(String entityName, XProperty property, boolean isIndexed, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext)

collection binder factory

private XClass
private String
private String
public NotFoundAction
public SecondPass
getSecondPass(final Ejb3JoinColumn[] fkJoinColumns, final Ejb3JoinColumn[] keyColumns, final Ejb3JoinColumn[] inverseColumns, final Ejb3Column[] elementColumns, final Ejb3Column[] mapKeyColumns, final Ejb3JoinColumn[] mapKeyManyToManyColumns, final boolean isEmbedded, final XProperty property, final XClass collType, final NotFoundAction notFoundAction, final boolean unique, final TableBinder assocTableBinder, final MetadataBuildingContext buildingContext)

private static Class<?>
protected boolean
public boolean
private String
public void
public void
public void
public void
setCache(Cache cacheAnn)

public void
setCascadeDeleteEnabled(boolean onDeleteCascade)

public void
setCascadeStrategy(String cascadeStrategy)

public void
setCollectionType(XClass collectionType)

public void
public void
setDeclaringClass(XClass declaringClass)

public void
setElementColumns(Ejb3Column[] elementColumns)

public void
setEmbedded(boolean annotationPresent)

public void
setExplicitAssociationTable(boolean explicitAssocTable)

public void
setFkJoinColumns(Ejb3JoinColumn[] ejb3JoinColumns)

public void
setIgnoreNotFound(boolean ignoreNotFound)

public void
public void
public void
setInsertable(boolean insertable)

public void
setInverseJoinColumns(Ejb3JoinColumn[] inverseJoinColumns)

protected void
setIsHibernateExtensionMapping(boolean hibernateExtensionMapping)

public void
public void
setJpaOrderBy(OrderBy jpaOrderBy)

public void
public void
public void
setMapKeyColumns(Ejb3Column[] mapKeyColumns)

public void
public void
setMappedBy(String mappedBy)

public void
public void
public void
setOneToMany(boolean oneToMany)

public void
public void
public void
setPropertyName(String propertyName)

public void
setSort(Sort deprecatedSort)

Deprecated as a consequence of Sort being deprecated.
public void
setSqlOrderBy(OrderBy sqlOrderBy)

public void
public void
setTargetEntity(XClass targetEntity)

public void
setUpdatable(boolean updatable)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

accessTypeback to summary
private AccessType accessType
batchSizeback to summary
private int batchSize
buildingContextback to summary
private MetadataBuildingContext buildingContext
cacheConcurrencyStrategyback to summary
private String cacheConcurrencyStrategy
cacheRegionNameback to summary
private String cacheRegionName
cascadeDeleteEnabledback to summary
protected boolean cascadeDeleteEnabled
cascadeStrategyback to summary
private String cascadeStrategy
collectionback to summary
protected Collection collection
collectionTypeback to summary
private XClass collectionType
comparatorSortback to summary
private SortComparator comparatorSort
declaringClassback to summary
private XClass declaringClass
declaringClassSetback to summary
private boolean declaringClassSet
deprecatedSortback to summary
private Sort deprecatedSort

Deprecated

as a consequence of Sort being deprecated. See corresponding docs for further information.

elementColumnsback to summary
private Ejb3Column[] elementColumns
explicitTypeback to summary
private String explicitType
explicitTypeParametersback to summary
private final Properties explicitTypeParameters
fkJoinColumnsback to summary
private Ejb3JoinColumn[] fkJoinColumns
hibernateExtensionMappingback to summary
private boolean hibernateExtensionMapping
indexColumnback to summary
protected IndexColumn indexColumn
INFERRED_CLASS_PRIORITYback to summary
private static final List<Class<?>> INFERRED_CLASS_PRIORITY
inheritanceStatePerClassback to summary
protected Map<XClass, InheritanceState> inheritanceStatePerClass
insertableback to summary
private boolean insertable
inverseJoinColumnsback to summary
private Ejb3JoinColumn[] inverseJoinColumns
isEmbeddedback to summary
private boolean isEmbedded
isExplicitAssociationTableback to summary
private boolean isExplicitAssociationTable
isSortedCollectionback to summary
private boolean isSortedCollection
joinColumnsback to summary
private Ejb3JoinColumn[] joinColumns
jpaOrderByback to summary
private OrderBy jpaOrderBy
localGeneratorsback to summary
protected HashMap<String, IdentifierGeneratorDefinition> localGenerators
LOGback to summary
private static final CoreMessageLogger LOG
mapKeyColumnsback to summary
private Ejb3Column[] mapKeyColumns
mapKeyManyToManyColumnsback to summary
private Ejb3JoinColumn[] mapKeyManyToManyColumns
mapKeyPropertyNameback to summary
protected String mapKeyPropertyName
mappedByback to summary
private String mappedBy
naturalSortback to summary
private SortNatural naturalSort
notFoundActionback to summary
private NotFoundAction notFoundAction
oneToManyback to summary
private boolean oneToMany
propertyback to summary
private XProperty property
propertyHolderback to summary
pack-priv PropertyHolder propertyHolder
propertyNameback to summary
protected String propertyName
sqlOrderByback to summary
private OrderBy sqlOrderBy
tableBinderback to summary
private TableBinder tableBinder
targetEntityback to summary
private XClass targetEntity
updatableback to summary
private boolean updatable

Constructor Detail

CollectionBinderback to summary
protected CollectionBinder(boolean isSortedCollection)

Method Detail

adjustUserSuppliedValueCollectionOrderingFragmentback to summary
public static String adjustUserSuppliedValueCollectionOrderingFragment(String orderByFragment)
applySortingAndOrderingback to summary
private void applySortingAndOrdering(Collection collection)
bindback to summary
public void bind()
bindCollectionSecondPassback to summary
private static void bindCollectionSecondPass(Collection collValue, PersistentClass collectionEntity, Ejb3JoinColumn[] joinColumns, boolean cascadeDeleteEnabled, XProperty property, PropertyHolder propertyHolder, MetadataBuildingContext buildingContext)
bindFiltersback to summary
private void bindFilters(boolean hasAssociationTable)
bindManytoManyInverseFkback to summary
public static void bindManytoManyInverseFk(PersistentClass referencedEntity, Ejb3JoinColumn[] columns, SimpleValue value, boolean unique, MetadataBuildingContext buildingContext)

bind the inverse FK of a ManyToMany If we are in a mappedBy case, read the columns from the associated collection element Otherwise delegates to the usual algorithm

bindManyToManySecondPassback to summary
private void bindManyToManySecondPass(Collection collValue, Map<String, PersistentClass> persistentClasses, Ejb3JoinColumn[] joinColumns, Ejb3JoinColumn[] inverseJoinColumns, Ejb3Column[] elementColumns, boolean isEmbedded, XClass collType, NotFoundAction notFoundAction, boolean unique, boolean cascadeDeleteEnabled, TableBinder associationTableBinder, XProperty property, PropertyHolder parentPropertyHolder, MetadataBuildingContext buildingContext) throws MappingException
bindOneToManySecondPassback to summary
protected void bindOneToManySecondPass(Collection collection, Map<String, PersistentClass> persistentClasses, Ejb3JoinColumn[] fkJoinColumns, XClass collectionType, boolean cascadeDeleteEnabled, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext, Map<XClass, InheritanceState> inheritanceStatePerClass)
bindStarToManySecondPassback to summary
protected boolean bindStarToManySecondPass(Map<String, PersistentClass> persistentClasses, XClass collType, Ejb3JoinColumn[] fkJoinColumns, Ejb3JoinColumn[] keyColumns, Ejb3JoinColumn[] inverseColumns, Ejb3Column[] elementColumns, boolean isEmbedded, XProperty property, boolean unique, TableBinder associationTableBinder, NotFoundAction notFoundAction, MetadataBuildingContext buildingContext)

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

buildCollectionKeyback to summary
private static SimpleValue buildCollectionKey(Collection collValue, Ejb3JoinColumn[] joinColumns, boolean cascadeDeleteEnabled, boolean noConstraintByDefault, XProperty property, PropertyHolder propertyHolder, MetadataBuildingContext buildingContext)
buildIllegalSortCombinationback to summary
private AnnotationException buildIllegalSortCombination()
buildOrderByClauseFromHqlback to summary
private static String buildOrderByClauseFromHql(String orderByFragment, PersistentClass associatedClass, String role)
checkFilterConditionsback to summary
private static void checkFilterConditions(Collection collValue)
createCollectionback to summary
protected abstract Collection createCollection(PersistentClass persistentClass)
defineFetchingStrategyback to summary
private void defineFetchingStrategy()
extractHqlOrderByback to summary
private String extractHqlOrderBy(OrderBy jpaOrderBy)
getBinderFromBasicCollectionTypeback to summary
private static CollectionBinder getBinderFromBasicCollectionType(Class<?> clazz, XProperty property, String entityName, boolean isIndexed)
getBuildingContextback to summary
protected MetadataBuildingContext getBuildingContext()
getCollectionback to summary
public Collection getCollection()
getCollectionBinderback to summary
public static CollectionBinder getCollectionBinder(String entityName, XProperty property, boolean isIndexed, boolean isHibernateExtensionMapping, MetadataBuildingContext buildingContext)

collection binder factory

getCollectionTypeback to summary
private XClass getCollectionType()
getConditionback to summary
private String getCondition(Filter filter)
getConditionback to summary
private String getCondition(String cond, String name)
getNotFoundActionback to summary
public NotFoundAction getNotFoundAction()
getSecondPassback to summary
public SecondPass getSecondPass(final Ejb3JoinColumn[] fkJoinColumns, final Ejb3JoinColumn[] keyColumns, final Ejb3JoinColumn[] inverseColumns, final Ejb3Column[] elementColumns, final Ejb3Column[] mapKeyColumns, final Ejb3JoinColumn[] mapKeyManyToManyColumns, final boolean isEmbedded, final XProperty property, final XClass collType, final NotFoundAction notFoundAction, final boolean unique, final TableBinder assocTableBinder, final MetadataBuildingContext buildingContext)
inferCollectionClassFromSubclassback to summary
private static Class<?> inferCollectionClassFromSubclass(Class<?> clazz)
isHibernateExtensionMappingback to summary
protected boolean isHibernateExtensionMapping()
isMapback to summary
public boolean isMap()
safeCollectionRoleback to summary
private String safeCollectionRole()
setAccessTypeback to summary
public void setAccessType(AccessType accessType)
setBatchSizeback to summary
public void setBatchSize(BatchSize batchSize)
setBuildingContextback to summary
public void setBuildingContext(MetadataBuildingContext buildingContext)
setCacheback to summary
public void setCache(Cache cacheAnn)
setCascadeDeleteEnabledback to summary
public void setCascadeDeleteEnabled(boolean onDeleteCascade)
setCascadeStrategyback to summary
public void setCascadeStrategy(String cascadeStrategy)
setCollectionTypeback to summary
public void setCollectionType(XClass collectionType)
setComparatorSortback to summary
public void setComparatorSort(SortComparator comparatorSort)
setDeclaringClassback to summary
public void setDeclaringClass(XClass declaringClass)
setElementColumnsback to summary
public void setElementColumns(Ejb3Column[] elementColumns)
setEmbeddedback to summary
public void setEmbedded(boolean annotationPresent)
setExplicitAssociationTableback to summary
public void setExplicitAssociationTable(boolean explicitAssocTable)
setFkJoinColumnsback to summary
public void setFkJoinColumns(Ejb3JoinColumn[] ejb3JoinColumns)
setIgnoreNotFoundback to summary
public void setIgnoreNotFound(boolean ignoreNotFound)
setIndexColumnback to summary
public void setIndexColumn(IndexColumn indexColumn)
setInheritanceStatePerClassback to summary
public void setInheritanceStatePerClass(Map<XClass, InheritanceState> inheritanceStatePerClass)
setInsertableback to summary
public void setInsertable(boolean insertable)
setInverseJoinColumnsback to summary
public void setInverseJoinColumns(Ejb3JoinColumn[] inverseJoinColumns)
setIsHibernateExtensionMappingback to summary
protected void setIsHibernateExtensionMapping(boolean hibernateExtensionMapping)
setJoinColumnsback to summary
public void setJoinColumns(Ejb3JoinColumn[] joinColumns)
setJpaOrderByback to summary
public void setJpaOrderBy(OrderBy jpaOrderBy)
setLocalGeneratorsback to summary
public void setLocalGenerators(HashMap<String, IdentifierGeneratorDefinition> localGenerators)
setMapKeyback to summary
public void setMapKey(MapKey key)
setMapKeyColumnsback to summary
public void setMapKeyColumns(Ejb3Column[] mapKeyColumns)
setMapKeyManyToManyColumnsback to summary
public void setMapKeyManyToManyColumns(Ejb3JoinColumn[] mapJoinColumns)
setMappedByback to summary
public void setMappedBy(String mappedBy)
setNaturalSortback to summary
public void setNaturalSort(SortNatural naturalSort)
setNotFoundActionback to summary
public void setNotFoundAction(NotFoundAction notFoundAction)
setOneToManyback to summary
public void setOneToMany(boolean oneToMany)
setPropertyback to summary
public void setProperty(XProperty property)
setPropertyHolderback to summary
public void setPropertyHolder(PropertyHolder propertyHolder)
setPropertyNameback to summary
public void setPropertyName(String propertyName)
setSortback to summary
public void setSort(Sort deprecatedSort)

Deprecated

as a consequence of Sort being deprecated. See corresponding docs for further information.

setSqlOrderByback to summary
public void setSqlOrderBy(OrderBy sqlOrderBy)
setTableBinderback to summary
public void setTableBinder(TableBinder tableBinder)
setTargetEntityback to summary
public void setTargetEntity(XClass targetEntity)
setUpdatableback to summary
public void setUpdatable(boolean updatable)