HHH-15923 - Clean-up the org.hibernate.loader package

HHH-15799 - API/internal split for org.hibernate.cfg package

and some minor Javadoc work
This commit is contained in:
Steve Ebersole 2022-12-21 15:44:31 -06:00
parent 98174c86d2
commit 32cc739f39
38 changed files with 174 additions and 183 deletions

View File

@ -6,18 +6,18 @@
*/ */
package org.hibernate.annotations; package org.hibernate.annotations;
import org.hibernate.property.access.spi.PropertyAccessStrategy;
import org.hibernate.binder.internal.AttributeAccessorBinder;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.hibernate.binder.internal.AttributeAccessorBinder;
import org.hibernate.property.access.spi.PropertyAccessStrategy;
import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME; import static java.lang.annotation.RetentionPolicy.RUNTIME;
/** /**
* Names a persistent property access strategy ({@link PropertyAccessStrategy}) to use. * Specifies an attribute {@linkplain PropertyAccessStrategy access strategy} to use.
* <p> * <p>
* Can be specified at either:<ul> * Can be specified at either:<ul>
* <li> * <li>

View File

@ -40,7 +40,7 @@ public class BeanValidationIntegrator implements Integrator {
public static final String MODE_PROPERTY = "javax.persistence.validation.mode"; public static final String MODE_PROPERTY = "javax.persistence.validation.mode";
public static final String JAKARTA_MODE_PROPERTY = "jakarta.persistence.validation.mode"; public static final String JAKARTA_MODE_PROPERTY = "jakarta.persistence.validation.mode";
private static final String ACTIVATOR_CLASS_NAME = "org.hibernate.cfg.beanvalidation.TypeSafeActivator"; private static final String ACTIVATOR_CLASS_NAME = "org.hibernate.boot.beanvalidation.TypeSafeActivator";
private static final String VALIDATE_SUPPLIED_FACTORY_METHOD_NAME = "validateSuppliedFactory"; private static final String VALIDATE_SUPPLIED_FACTORY_METHOD_NAME = "validateSuppliedFactory";
private static final String ACTIVATE_METHOD_NAME = "activate"; private static final String ACTIVATE_METHOD_NAME = "activate";

View File

@ -15,13 +15,13 @@ import org.hibernate.annotations.common.reflection.XProperty;
import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.boot.spi.MetadataBuildingContext;
import org.hibernate.boot.spi.PropertyData; import org.hibernate.boot.spi.PropertyData;
import org.hibernate.internal.util.StringHelper; import org.hibernate.internal.util.StringHelper;
import org.hibernate.loader.PropertyPath;
import org.hibernate.mapping.Component; import org.hibernate.mapping.Component;
import org.hibernate.mapping.Join; import org.hibernate.mapping.Join;
import org.hibernate.mapping.KeyValue; import org.hibernate.mapping.KeyValue;
import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property; import org.hibernate.mapping.Property;
import org.hibernate.mapping.Table; import org.hibernate.mapping.Table;
import org.hibernate.spi.NavigablePath;
import jakarta.persistence.Column; import jakarta.persistence.Column;
import jakarta.persistence.Convert; import jakarta.persistence.Convert;
@ -352,7 +352,7 @@ public class ComponentPropertyHolder extends AbstractPropertyHolder {
} }
} }
if ( result == null ) { if ( result == null ) {
String userPropertyName = extractUserPropertyName( PropertyPath.IDENTIFIER_MAPPER_PROPERTY, propertyName ); String userPropertyName = extractUserPropertyName( NavigablePath.IDENTIFIER_MAPPER_PROPERTY, propertyName );
if ( userPropertyName != null ) { if ( userPropertyName != null ) {
result = super.getOverriddenColumn( userPropertyName ); result = super.getOverriddenColumn( userPropertyName );
} }

View File

@ -78,7 +78,6 @@ import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.hibernate.engine.spi.FilterDefinition; import org.hibernate.engine.spi.FilterDefinition;
import org.hibernate.internal.CoreMessageLogger; import org.hibernate.internal.CoreMessageLogger;
import org.hibernate.jpa.event.spi.CallbackType; import org.hibernate.jpa.event.spi.CallbackType;
import org.hibernate.loader.PropertyPath;
import org.hibernate.mapping.BasicValue; import org.hibernate.mapping.BasicValue;
import org.hibernate.mapping.Component; import org.hibernate.mapping.Component;
import org.hibernate.mapping.DependantValue; import org.hibernate.mapping.DependantValue;
@ -96,6 +95,7 @@ import org.hibernate.mapping.TableOwner;
import org.hibernate.mapping.UnionSubclass; import org.hibernate.mapping.UnionSubclass;
import org.hibernate.mapping.Value; import org.hibernate.mapping.Value;
import org.hibernate.persister.entity.EntityPersister; import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.spi.NavigablePath;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
@ -382,7 +382,7 @@ public class EntityBinder {
propertyAccessor propertyAccessor
); );
final Property mapperProperty = new Property(); final Property mapperProperty = new Property();
mapperProperty.setName( PropertyPath.IDENTIFIER_MAPPER_PROPERTY ); mapperProperty.setName( NavigablePath.IDENTIFIER_MAPPER_PROPERTY );
mapperProperty.setUpdateable( false ); mapperProperty.setUpdateable( false );
mapperProperty.setInsertable( false ); mapperProperty.setInsertable( false );
mapperProperty.setPropertyAccessorName( "embedded" ); mapperProperty.setPropertyAccessorName( "embedded" );
@ -404,7 +404,7 @@ public class EntityBinder {
propertyHolder, propertyHolder,
new PropertyPreloadedData( new PropertyPreloadedData(
propertyAccessor, propertyAccessor,
PropertyPath.IDENTIFIER_MAPPER_PROPERTY, NavigablePath.IDENTIFIER_MAPPER_PROPERTY,
compositeClass compositeClass
), ),
baseInferredData, baseInferredData,

View File

@ -8,7 +8,7 @@ package org.hibernate.boot.model.naming;
import org.hibernate.boot.model.source.spi.AttributePath; import org.hibernate.boot.model.source.spi.AttributePath;
import org.hibernate.internal.util.StringHelper; import org.hibernate.internal.util.StringHelper;
import org.hibernate.loader.PropertyPath; import org.hibernate.spi.NavigablePath;
/** /**
* An ImplicitNamingStrategy implementation which uses full composite paths * An ImplicitNamingStrategy implementation which uses full composite paths
@ -37,7 +37,7 @@ public class ImplicitNamingStrategyComponentPathImpl extends ImplicitNamingStrat
process( parent, sb ); process( parent, sb );
sb.append( '_' ); sb.append( '_' );
} }
else if ( PropertyPath.IDENTIFIER_MAPPER_PROPERTY.equals( property ) ) { else if ( NavigablePath.IDENTIFIER_MAPPER_PROPERTY.equals( property ) ) {
// skip it, do not pass go // skip it, do not pass go
sb.append( "id" ); sb.append( "id" );
return; return;

View File

@ -111,7 +111,6 @@ import org.hibernate.internal.log.DeprecationLogger;
import org.hibernate.internal.util.StringHelper; import org.hibernate.internal.util.StringHelper;
import org.hibernate.internal.util.collections.CollectionHelper; import org.hibernate.internal.util.collections.CollectionHelper;
import org.hibernate.internal.util.config.ConfigurationHelper; import org.hibernate.internal.util.config.ConfigurationHelper;
import org.hibernate.loader.PropertyPath;
import org.hibernate.mapping.Any; import org.hibernate.mapping.Any;
import org.hibernate.mapping.Array; import org.hibernate.mapping.Array;
import org.hibernate.mapping.AttributeContainer; import org.hibernate.mapping.AttributeContainer;
@ -148,6 +147,7 @@ import org.hibernate.mapping.UniqueKey;
import org.hibernate.mapping.Value; import org.hibernate.mapping.Value;
import org.hibernate.resource.beans.spi.ManagedBean; import org.hibernate.resource.beans.spi.ManagedBean;
import org.hibernate.resource.beans.spi.ManagedBeanRegistry; import org.hibernate.resource.beans.spi.ManagedBeanRegistry;
import org.hibernate.spi.NavigablePath;
import org.hibernate.tuple.GenerationTiming; import org.hibernate.tuple.GenerationTiming;
import org.hibernate.type.AbstractSingleColumnStandardBasicType; import org.hibernate.type.AbstractSingleColumnStandardBasicType;
import org.hibernate.type.BasicType; import org.hibernate.type.BasicType;
@ -850,7 +850,7 @@ public class ModelBinder {
return identifierSource.getEmbeddableSource().getTypeDescriptor().getName(); return identifierSource.getEmbeddableSource().getTypeDescriptor().getName();
} }
private static final String ID_MAPPER_PATH_PART = '<' + PropertyPath.IDENTIFIER_MAPPER_PROPERTY + '>'; private static final String ID_MAPPER_PATH_PART = '<' + NavigablePath.IDENTIFIER_MAPPER_PROPERTY + '>';
private void bindNonAggregatedCompositeEntityIdentifier( private void bindNonAggregatedCompositeEntityIdentifier(
MappingDocument mappingDocument, MappingDocument mappingDocument,
@ -899,7 +899,7 @@ public class ModelBinder {
rootEntityDescriptor.setIdentifierMapper( mapper ); rootEntityDescriptor.setIdentifierMapper( mapper );
rootEntityDescriptor.setDeclaredIdentifierMapper( mapper ); rootEntityDescriptor.setDeclaredIdentifierMapper( mapper );
Property property = new Property(); Property property = new Property();
property.setName( PropertyPath.IDENTIFIER_MAPPER_PROPERTY ); property.setName( NavigablePath.IDENTIFIER_MAPPER_PROPERTY );
property.setUpdateable( false ); property.setUpdateable( false );
property.setInsertable( false ); property.setInsertable( false );
property.setValue( mapper ); property.setValue( mapper );

View File

@ -24,8 +24,8 @@ import org.hibernate.event.spi.LoadEvent;
import org.hibernate.event.spi.LoadEventListener; import org.hibernate.event.spi.LoadEventListener;
import org.hibernate.internal.CoreLogging; import org.hibernate.internal.CoreLogging;
import org.hibernate.internal.CoreMessageLogger; import org.hibernate.internal.CoreMessageLogger;
import org.hibernate.loader.entity.CacheEntityLoaderHelper; import org.hibernate.loader.ast.internal.CacheEntityLoaderHelper;
import org.hibernate.loader.entity.CacheEntityLoaderHelper.PersistenceContextEntry; import org.hibernate.loader.ast.internal.CacheEntityLoaderHelper.PersistenceContextEntry;
import org.hibernate.metamodel.mapping.AttributeMapping; import org.hibernate.metamodel.mapping.AttributeMapping;
import org.hibernate.metamodel.mapping.CompositeIdentifierMapping; import org.hibernate.metamodel.mapping.CompositeIdentifierMapping;
import org.hibernate.metamodel.mapping.EmbeddableMappingType; import org.hibernate.metamodel.mapping.EmbeddableMappingType;

View File

@ -9,7 +9,6 @@ package org.hibernate.id;
import java.util.Properties; import java.util.Properties;
import org.hibernate.MappingException; import org.hibernate.MappingException;
import org.hibernate.Session;
import org.hibernate.TransientObjectException; import org.hibernate.TransientObjectException;
import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.factory.spi.StandardGenerator; import org.hibernate.id.factory.spi.StandardGenerator;
@ -22,7 +21,7 @@ import org.hibernate.type.Type;
import static org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved; import static org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved;
import static org.hibernate.id.IdentifierGeneratorHelper.SHORT_CIRCUIT_INDICATOR; import static org.hibernate.id.IdentifierGeneratorHelper.SHORT_CIRCUIT_INDICATOR;
import static org.hibernate.internal.CoreLogging.messageLogger; import static org.hibernate.internal.CoreLogging.messageLogger;
import static org.hibernate.loader.PropertyPath.IDENTIFIER_MAPPER_PROPERTY; import static org.hibernate.spi.NavigablePath.IDENTIFIER_MAPPER_PROPERTY;
/** /**
* <b>foreign</b> * <b>foreign</b>

View File

@ -23,7 +23,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import jakarta.persistence.metamodel.Metamodel;
import org.hibernate.CacheMode; import org.hibernate.CacheMode;
import org.hibernate.ConnectionAcquisitionMode; import org.hibernate.ConnectionAcquisitionMode;
import org.hibernate.FetchNotFoundException; import org.hibernate.FetchNotFoundException;
@ -53,6 +52,7 @@ import org.hibernate.TransientObjectException;
import org.hibernate.TypeMismatchException; import org.hibernate.TypeMismatchException;
import org.hibernate.UnknownProfileException; import org.hibernate.UnknownProfileException;
import org.hibernate.UnresolvableObjectException; import org.hibernate.UnresolvableObjectException;
import org.hibernate.binder.internal.TenantIdBinder;
import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.AvailableSettings;
import org.hibernate.collection.spi.PersistentCollection; import org.hibernate.collection.spi.PersistentCollection;
import org.hibernate.context.spi.CurrentTenantIdentifierResolver; import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
@ -72,12 +72,11 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.engine.spi.Status; import org.hibernate.engine.spi.Status;
import org.hibernate.engine.transaction.spi.TransactionImplementor; import org.hibernate.engine.transaction.spi.TransactionImplementor;
import org.hibernate.engine.transaction.spi.TransactionObserver; import org.hibernate.engine.transaction.spi.TransactionObserver;
import org.hibernate.event.spi.DeleteContext;
import org.hibernate.event.spi.MergeContext;
import org.hibernate.event.spi.AutoFlushEvent; import org.hibernate.event.spi.AutoFlushEvent;
import org.hibernate.event.spi.AutoFlushEventListener; import org.hibernate.event.spi.AutoFlushEventListener;
import org.hibernate.event.spi.ClearEvent; import org.hibernate.event.spi.ClearEvent;
import org.hibernate.event.spi.ClearEventListener; import org.hibernate.event.spi.ClearEventListener;
import org.hibernate.event.spi.DeleteContext;
import org.hibernate.event.spi.DeleteEvent; import org.hibernate.event.spi.DeleteEvent;
import org.hibernate.event.spi.DeleteEventListener; import org.hibernate.event.spi.DeleteEventListener;
import org.hibernate.event.spi.DirtyCheckEvent; import org.hibernate.event.spi.DirtyCheckEvent;
@ -94,6 +93,7 @@ import org.hibernate.event.spi.LoadEventListener;
import org.hibernate.event.spi.LoadEventListener.LoadType; import org.hibernate.event.spi.LoadEventListener.LoadType;
import org.hibernate.event.spi.LockEvent; import org.hibernate.event.spi.LockEvent;
import org.hibernate.event.spi.LockEventListener; import org.hibernate.event.spi.LockEventListener;
import org.hibernate.event.spi.MergeContext;
import org.hibernate.event.spi.MergeEvent; import org.hibernate.event.spi.MergeEvent;
import org.hibernate.event.spi.MergeEventListener; import org.hibernate.event.spi.MergeEventListener;
import org.hibernate.event.spi.PersistContext; import org.hibernate.event.spi.PersistContext;
@ -118,10 +118,10 @@ import org.hibernate.jpa.internal.util.ConfigurationHelper;
import org.hibernate.jpa.internal.util.FlushModeTypeHelper; import org.hibernate.jpa.internal.util.FlushModeTypeHelper;
import org.hibernate.jpa.internal.util.LockModeTypeHelper; import org.hibernate.jpa.internal.util.LockModeTypeHelper;
import org.hibernate.jpa.internal.util.LockOptionsHelper; import org.hibernate.jpa.internal.util.LockOptionsHelper;
import org.hibernate.loader.access.IdentifierLoadAccessImpl; import org.hibernate.loader.internal.IdentifierLoadAccessImpl;
import org.hibernate.loader.access.LoadAccessContext; import org.hibernate.loader.internal.LoadAccessContext;
import org.hibernate.loader.access.NaturalIdLoadAccessImpl; import org.hibernate.loader.internal.NaturalIdLoadAccessImpl;
import org.hibernate.loader.access.SimpleNaturalIdLoadAccessImpl; import org.hibernate.loader.internal.SimpleNaturalIdLoadAccessImpl;
import org.hibernate.persister.entity.EntityPersister; import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.pretty.MessageHelper; import org.hibernate.pretty.MessageHelper;
import org.hibernate.procedure.ProcedureCall; import org.hibernate.procedure.ProcedureCall;
@ -141,7 +141,7 @@ import org.hibernate.resource.transaction.spi.TransactionStatus;
import org.hibernate.stat.SessionStatistics; import org.hibernate.stat.SessionStatistics;
import org.hibernate.stat.internal.SessionStatisticsImpl; import org.hibernate.stat.internal.SessionStatisticsImpl;
import org.hibernate.stat.spi.StatisticsImplementor; import org.hibernate.stat.spi.StatisticsImplementor;
import org.hibernate.binder.internal.TenantIdBinder; import org.hibernate.type.descriptor.WrapperOptions;
import jakarta.persistence.CacheRetrieveMode; import jakarta.persistence.CacheRetrieveMode;
import jakarta.persistence.CacheStoreMode; import jakarta.persistence.CacheStoreMode;
@ -152,14 +152,14 @@ import jakarta.persistence.FlushModeType;
import jakarta.persistence.LockModeType; import jakarta.persistence.LockModeType;
import jakarta.persistence.PersistenceException; import jakarta.persistence.PersistenceException;
import jakarta.persistence.TransactionRequiredException; import jakarta.persistence.TransactionRequiredException;
import org.hibernate.type.descriptor.WrapperOptions; import jakarta.persistence.metamodel.Metamodel;
import static org.hibernate.CacheMode.fromJpaModes; import static org.hibernate.CacheMode.fromJpaModes;
import static org.hibernate.cfg.AvailableSettings.CRITERIA_COPY_TREE;
import static org.hibernate.cfg.AvailableSettings.JAKARTA_LOCK_SCOPE; import static org.hibernate.cfg.AvailableSettings.JAKARTA_LOCK_SCOPE;
import static org.hibernate.cfg.AvailableSettings.JAKARTA_LOCK_TIMEOUT; import static org.hibernate.cfg.AvailableSettings.JAKARTA_LOCK_TIMEOUT;
import static org.hibernate.cfg.AvailableSettings.JAKARTA_SHARED_CACHE_RETRIEVE_MODE; import static org.hibernate.cfg.AvailableSettings.JAKARTA_SHARED_CACHE_RETRIEVE_MODE;
import static org.hibernate.cfg.AvailableSettings.JAKARTA_SHARED_CACHE_STORE_MODE; import static org.hibernate.cfg.AvailableSettings.JAKARTA_SHARED_CACHE_STORE_MODE;
import static org.hibernate.cfg.AvailableSettings.CRITERIA_COPY_TREE;
import static org.hibernate.cfg.AvailableSettings.JPA_LOCK_SCOPE; import static org.hibernate.cfg.AvailableSettings.JPA_LOCK_SCOPE;
import static org.hibernate.cfg.AvailableSettings.JPA_LOCK_TIMEOUT; import static org.hibernate.cfg.AvailableSettings.JPA_LOCK_TIMEOUT;
import static org.hibernate.cfg.AvailableSettings.JPA_SHARED_CACHE_RETRIEVE_MODE; import static org.hibernate.cfg.AvailableSettings.JPA_SHARED_CACHE_RETRIEVE_MODE;

View File

@ -1,26 +0,0 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
package org.hibernate.loader;
import org.hibernate.SharedSessionContract;
import org.hibernate.metamodel.mapping.EntityMappingType;
/**
* Listener for post load-by-natural-id events
*/
@FunctionalInterface
public interface NaturalIdPostLoadListener {
/**
* Singleton access for no listener
*/
NaturalIdPostLoadListener NO_OP = (loadingEntity, entity, session) -> {};
/**
* Callback for a load-by-natural-id pre event
*/
void completedLoadByNaturalId(EntityMappingType entityMappingType, Object entity, SharedSessionContract session);
}

View File

@ -1,26 +0,0 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
package org.hibernate.loader;
import org.hibernate.SharedSessionContract;
import org.hibernate.metamodel.mapping.EntityMappingType;
/**
* Listener for pre load-by-natural-id events
*/
@FunctionalInterface
public interface NaturalIdPreLoadListener {
/**
* Singleton access for no listener
*/
NaturalIdPreLoadListener NO_OP = (loadingEntity, naturalId, session) -> {};
/**
* Callback for a load-by-natural-id pre event
*/
void startingLoadByNaturalId(EntityMappingType loadingEntity, Object naturalId, SharedSessionContract session);
}

View File

@ -9,6 +9,11 @@ package org.hibernate.loader;
import org.hibernate.HibernateException; import org.hibernate.HibernateException;
/** /**
* Thrown when Hibernate encounters a non-unique SQL alias in the ResultSet
* while processing the results of a {@linkplain org.hibernate.query.NativeQuery}
* using auto-discovery to understand the {@linkplain java.sql.ResultSetMetaData ResultSet metadata}
* for mapping the JDBC values to the domain result.
*
* @author Steve Ebersole * @author Steve Ebersole
*/ */
public class NonUniqueDiscoveredSqlAliasException extends HibernateException { public class NonUniqueDiscoveredSqlAliasException extends HibernateException {

View File

@ -12,7 +12,11 @@ import org.hibernate.spi.NavigablePath;
/** /**
* @author Steve Ebersole * @author Steve Ebersole
*
* @deprecated Use {@link NavigablePath} or {@link org.hibernate.metamodel.model.domain.NavigableRole}
* instead, depending on need.
*/ */
@Deprecated(since = "6", forRemoval = true)
public class PropertyPath implements DotIdentifierSequence { public class PropertyPath implements DotIdentifierSequence {
public static final String IDENTIFIER_MAPPER_PROPERTY = NavigablePath.IDENTIFIER_MAPPER_PROPERTY; public static final String IDENTIFIER_MAPPER_PROPERTY = NavigablePath.IDENTIFIER_MAPPER_PROPERTY;

View File

@ -21,7 +21,6 @@ import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import org.hibernate.engine.jdbc.spi.JdbcServices; import org.hibernate.engine.jdbc.spi.JdbcServices;
import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.loader.ast.spi.Loadable;
import org.hibernate.loader.ast.spi.NaturalIdLoadOptions; import org.hibernate.loader.ast.spi.NaturalIdLoadOptions;
import org.hibernate.loader.ast.spi.NaturalIdLoader; import org.hibernate.loader.ast.spi.NaturalIdLoader;
import org.hibernate.metamodel.mapping.EntityIdentifierMapping; import org.hibernate.metamodel.mapping.EntityIdentifierMapping;
@ -30,7 +29,6 @@ import org.hibernate.metamodel.mapping.NaturalIdMapping;
import org.hibernate.metamodel.mapping.SelectableMapping; import org.hibernate.metamodel.mapping.SelectableMapping;
import org.hibernate.query.internal.SimpleQueryOptions; import org.hibernate.query.internal.SimpleQueryOptions;
import org.hibernate.query.spi.QueryOptions; import org.hibernate.query.spi.QueryOptions;
import org.hibernate.query.spi.QueryParameterBindings;
import org.hibernate.spi.NavigablePath; import org.hibernate.spi.NavigablePath;
import org.hibernate.sql.ast.Clause; import org.hibernate.sql.ast.Clause;
import org.hibernate.sql.ast.SqlAstTranslatorFactory; import org.hibernate.sql.ast.SqlAstTranslatorFactory;
@ -87,7 +85,7 @@ public abstract class AbstractNaturalIdLoader<T> implements NaturalIdLoader<T> {
} }
@Override @Override
public Loadable getLoadable() { public EntityMappingType getLoadable() {
return entityDescriptor(); return entityDescriptor();
} }
@ -177,17 +175,13 @@ public abstract class AbstractNaturalIdLoader<T> implements NaturalIdLoader<T> {
final SelectStatement sqlSelect = new SelectStatement( rootQuerySpec, Collections.singletonList( domainResult ) ); final SelectStatement sqlSelect = new SelectStatement( rootQuerySpec, Collections.singletonList( domainResult ) );
final List<JdbcParameter> jdbcParameters = new ArrayList<>( naturalIdMapping.getJdbcTypeCount() ); final JdbcParameterBindings jdbcParamBindings = new JdbcParameterBindingsImpl( naturalIdMapping.getJdbcTypeCount() );
final JdbcParameterBindings jdbcParamBindings = new JdbcParameterBindingsImpl( jdbcParameters.size() );
applyNaturalIdRestriction( applyNaturalIdRestriction(
bindValue, bindValue,
rootTableGroup, rootTableGroup,
rootQuerySpec::applyPredicate, rootQuerySpec::applyPredicate,
(jdbcParameter, jdbcParameterBinding) -> { jdbcParamBindings::addBinding,
jdbcParameters.add( jdbcParameter );
jdbcParamBindings.addBinding( jdbcParameter, jdbcParameterBinding );
},
sqlAstCreationState, sqlAstCreationState,
session session
); );
@ -250,7 +244,7 @@ public abstract class AbstractNaturalIdLoader<T> implements NaturalIdLoader<T> {
TableGroup rootTableGroup, TableGroup rootTableGroup,
SelectableMapping selectableMapping, SelectableMapping selectableMapping,
SqlExpressionResolver sqlExpressionResolver, SqlExpressionResolver sqlExpressionResolver,
SessionFactoryImplementor sessionFactory) { @SuppressWarnings("unused") SessionFactoryImplementor sessionFactory) {
final TableReference tableReference = rootTableGroup.getTableReference( rootTableGroup.getNavigablePath(), selectableMapping.getContainingTableExpression() ); final TableReference tableReference = rootTableGroup.getTableReference( rootTableGroup.getNavigablePath(), selectableMapping.getContainingTableExpression() );
if ( tableReference == null ) { if ( tableReference == null ) {
throw new IllegalStateException( throw new IllegalStateException(

View File

@ -2,9 +2,9 @@
* Hibernate, Relational Persistence for Idiomatic Java * Hibernate, Relational Persistence for Idiomatic Java
* *
* License: GNU Lesser General Public License (LGPL), version 2.1 or later. * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/ */
package org.hibernate.loader.entity; package org.hibernate.loader.ast.internal;
import org.hibernate.HibernateException; import org.hibernate.HibernateException;
import org.hibernate.Incubating; import org.hibernate.Incubating;

View File

@ -31,7 +31,6 @@ import org.hibernate.event.spi.LoadEventListener;
import org.hibernate.internal.util.collections.CollectionHelper; import org.hibernate.internal.util.collections.CollectionHelper;
import org.hibernate.loader.ast.spi.MultiIdEntityLoader; import org.hibernate.loader.ast.spi.MultiIdEntityLoader;
import org.hibernate.loader.ast.spi.MultiIdLoadOptions; import org.hibernate.loader.ast.spi.MultiIdLoadOptions;
import org.hibernate.loader.entity.CacheEntityLoaderHelper;
import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.PersistentClass;
import org.hibernate.metamodel.mapping.EntityMappingType; import org.hibernate.metamodel.mapping.EntityMappingType;
import org.hibernate.persister.entity.EntityPersister; import org.hibernate.persister.entity.EntityPersister;

View File

@ -0,0 +1,19 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/
package org.hibernate.loader.ast.spi;
import org.hibernate.metamodel.mapping.EntityMappingType;
/**
* Specialization of Loader for loading entities of a type
*
* @author Steve Ebersole
*/
public interface EntityLoader extends Loader {
@Override
EntityMappingType getLoadable();
}

View File

@ -6,14 +6,10 @@
*/ */
package org.hibernate.loader.ast.spi; package org.hibernate.loader.ast.spi;
import org.hibernate.metamodel.mapping.EntityMappingType;
/** /**
* Commonality for multi-loading * Commonality for multi-loading
* *
* @param <T> The loaded model part * @param <T> The loaded model part
*/ */
public interface MultiLoader<T> extends Loader { public interface MultiLoader<T> extends EntityLoader {
@Override
EntityMappingType getLoadable();
} }

View File

@ -13,7 +13,7 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor;
* *
* @author Steve Ebersole * @author Steve Ebersole
*/ */
public interface NaturalIdLoader<T> extends Loader { public interface NaturalIdLoader<T> extends EntityLoader {
/** /**
* Perform the load of the entity by its natural-id * Perform the load of the entity by its natural-id

View File

@ -15,7 +15,7 @@ import org.hibernate.metamodel.mapping.EntityMappingType;
* *
* @author Steve Ebersole * @author Steve Ebersole
*/ */
public interface SingleEntityLoader<T> extends Loader { public interface SingleEntityLoader<T> extends EntityLoader {
@Override @Override
EntityMappingType getLoadable(); EntityMappingType getLoadable();
@ -23,8 +23,4 @@ public interface SingleEntityLoader<T> extends Loader {
* Load an entity by a primary or unique key value. * Load an entity by a primary or unique key value.
*/ */
T load(Object key, LockOptions lockOptions, Boolean readOnly, SharedSessionContractImplementor session); T load(Object key, LockOptions lockOptions, Boolean readOnly, SharedSessionContractImplementor session);
default T load(Object key, LockOptions lockOptions, SharedSessionContractImplementor session) {
return load( key, lockOptions, session );
}
} }

View File

@ -14,7 +14,7 @@ import org.hibernate.engine.spi.SharedSessionContractImplementor;
* *
* @author Steve Ebersole * @author Steve Ebersole
*/ */
public interface SingleUniqueKeyEntityLoader<T> extends SingleEntityLoader { public interface SingleUniqueKeyEntityLoader<T> extends SingleEntityLoader<T> {
/** /**
* Load by unique key value * Load by unique key value
*/ */

View File

@ -16,9 +16,8 @@ public final class AliasConstantsHelper {
/** /**
* Returns the same as Integer.toString( i ) + '_' * Returns the same as Integer.toString( i ) + '_'
* Strings might be returned from a pool of constants, when i * Strings might be returned from a pool of constants, when `i`
* is within the range of expected most commonly requested elements. * is within the range of expected most commonly requested elements.
*
*/ */
public static String get(final int i) { public static String get(final int i) {
if ( i < MAX_POOL_SIZE && i >= 0 ) { if ( i < MAX_POOL_SIZE && i >= 0 ) {

View File

@ -1,10 +1,10 @@
/* /*
* Hibernate, Relational Persistence for Idiomatic Java * Hibernate, Relational Persistence for Idiomatic Java
* *
* License: GNU Lesser General Public License (LGPL), version 2.1 or later * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/ */
package org.hibernate.loader.access; package org.hibernate.loader.internal;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
@ -28,6 +28,8 @@ import org.hibernate.proxy.LazyInitializer;
import static org.hibernate.engine.spi.NaturalIdResolutions.INVALID_NATURAL_ID_REFERENCE; import static org.hibernate.engine.spi.NaturalIdResolutions.INVALID_NATURAL_ID_REFERENCE;
/** /**
* Base support for load-by-natural-id
*
* @author Steve Ebersole * @author Steve Ebersole
*/ */
public abstract class BaseNaturalIdLoadAccessImpl<T> implements NaturalIdLoadOptions { public abstract class BaseNaturalIdLoadAccessImpl<T> implements NaturalIdLoadOptions {

View File

@ -1,10 +1,10 @@
/* /*
* Hibernate, Relational Persistence for Idiomatic Java * Hibernate, Relational Persistence for Idiomatic Java
* *
* License: GNU Lesser General Public License (LGPL), version 2.1 or later * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/ */
package org.hibernate.loader.access; package org.hibernate.loader.internal;
import java.util.Optional; import java.util.Optional;
import java.util.function.Supplier; import java.util.function.Supplier;
@ -31,10 +31,9 @@ import org.hibernate.proxy.LazyInitializer;
import org.hibernate.type.descriptor.java.JavaType; import org.hibernate.type.descriptor.java.JavaType;
import org.hibernate.type.spi.TypeConfiguration; import org.hibernate.type.spi.TypeConfiguration;
import static org.hibernate.engine.internal.ManagedTypeHelper.asHibernateProxy;
import static org.hibernate.engine.internal.ManagedTypeHelper.isHibernateProxy;
/** /**
* Standard implementation of load-by-id
*
* @author Steve Ebersole * @author Steve Ebersole
*/ */
public class IdentifierLoadAccessImpl<T> implements IdentifierLoadAccess<T>, JavaType.CoercionContext { public class IdentifierLoadAccessImpl<T> implements IdentifierLoadAccess<T>, JavaType.CoercionContext {

View File

@ -1,10 +1,10 @@
/* /*
* Hibernate, Relational Persistence for Idiomatic Java * Hibernate, Relational Persistence for Idiomatic Java
* *
* License: GNU Lesser General Public License (LGPL), version 2.1 or later * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/ */
package org.hibernate.loader.access; package org.hibernate.loader.internal;
import org.hibernate.Incubating; import org.hibernate.Incubating;
import org.hibernate.Internal; import org.hibernate.Internal;

View File

@ -1,10 +1,10 @@
/* /*
* Hibernate, Relational Persistence for Idiomatic Java * Hibernate, Relational Persistence for Idiomatic Java
* *
* License: GNU Lesser General Public License (LGPL), version 2.1 or later * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/ */
package org.hibernate.loader.access; package org.hibernate.loader.internal;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;

View File

@ -1,10 +1,10 @@
/* /*
* Hibernate, Relational Persistence for Idiomatic Java * Hibernate, Relational Persistence for Idiomatic Java
* *
* License: GNU Lesser General Public License (LGPL), version 2.1 or later * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html * See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/ */
package org.hibernate.loader.access; package org.hibernate.loader.internal;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;

View File

@ -0,0 +1,14 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/
/**
* Support for {@linkplain org.hibernate.loader.ast.spi.Loader loading} entities and
* collections by primary-key, unique-key, natural-key, etc.
*
* @author Steve Ebersole
*/
package org.hibernate.loader;

View File

@ -1,21 +0,0 @@
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<html>
<head></head>
<body>
<p>
This package defines functionality for processing JDBC
result sets and returning complex graphs of persistent
objects.
</p>
<p>
Subclasses of <tt>Loader</tt> define a particular
query mechanism.
</p>
</body>
</html>

View File

@ -6,8 +6,8 @@
*/ */
/** /**
* This package defines an API for accessing the Hibernate runtime metamodel. * This package defines an API for accessing details about model mapping
* *
* deprecated (since 6.0) Use Hibernate's mapping model {@link org.hibernate.metamodel.MappingMetamodel} * Deprecated since 6.x in favor of the {@linkplain org.hibernate.metamodel.MappingMetamodel mapping-metamodel}
*/ */
package org.hibernate.metadata; package org.hibernate.metadata;

View File

@ -6,7 +6,9 @@
*/ */
/** /**
* Hibernate extensions to and implementations of the JPA metamodel * Extension to and implementation of the
* {@linkplain jakarta.persistence.metamodel Jakarta Persistence metamodel}.
* This metamodel is used in {@linkplain org.hibernate.query query} handling.
* *
* @see jakarta.persistence.metamodel * @see jakarta.persistence.metamodel
*/ */

View File

@ -0,0 +1,23 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/
/**
* Package defining Hibernate's 2 forms of runtime metamodel:<ul>
* <li>
* The {@linkplain org.hibernate.metamodel.model.domain domain-metamodel} which
* is an extension of the {@linkplain jakarta.persistence.metamodel Jakarta Persistence metamodel}
* and is used in {@linkplain org.hibernate.query query} handling.
* </li>
* <li>
* The {@linkplain org.hibernate.metamodel.mapping mapping-metamodel} which describes the
* application domain model and its mapping to the database. It is distinct from the Jakarta
* Persistence metamodel, which does not contain this mapping information.
* </li>
* </ul>
* @author Steve Ebersole
*/
package org.hibernate.metamodel;

View File

@ -95,10 +95,10 @@ import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.event.spi.EventSource; import org.hibernate.event.spi.EventSource;
import org.hibernate.event.spi.LoadEvent; import org.hibernate.event.spi.LoadEvent;
import org.hibernate.generator.BeforeExecutionGenerator;
import org.hibernate.generator.EventType; import org.hibernate.generator.EventType;
import org.hibernate.generator.Generator; import org.hibernate.generator.Generator;
import org.hibernate.generator.OnExecutionGenerator; import org.hibernate.generator.OnExecutionGenerator;
import org.hibernate.generator.BeforeExecutionGenerator;
import org.hibernate.generator.internal.VersionGeneration; import org.hibernate.generator.internal.VersionGeneration;
import org.hibernate.id.Assigned; import org.hibernate.id.Assigned;
import org.hibernate.id.BulkInsertionCapableIdentifierGenerator; import org.hibernate.id.BulkInsertionCapableIdentifierGenerator;
@ -106,10 +106,7 @@ import org.hibernate.id.IdentifierGenerator;
import org.hibernate.id.OptimizableGenerator; import org.hibernate.id.OptimizableGenerator;
import org.hibernate.id.PostInsertIdentityPersister; import org.hibernate.id.PostInsertIdentityPersister;
import org.hibernate.id.enhanced.Optimizer; import org.hibernate.id.enhanced.Optimizer;
import org.hibernate.id.insert.BasicSelectingDelegate;
import org.hibernate.id.insert.InsertGeneratedIdentifierDelegate; import org.hibernate.id.insert.InsertGeneratedIdentifierDelegate;
import org.hibernate.id.insert.InsertReturningDelegate;
import org.hibernate.id.insert.UniqueKeySelectingDelegate;
import org.hibernate.internal.CoreLogging; import org.hibernate.internal.CoreLogging;
import org.hibernate.internal.CoreMessageLogger; import org.hibernate.internal.CoreMessageLogger;
import org.hibernate.internal.FilterAliasGenerator; import org.hibernate.internal.FilterAliasGenerator;
@ -121,6 +118,7 @@ import org.hibernate.internal.util.collections.CollectionHelper;
import org.hibernate.internal.util.collections.LockModeEnumMap; import org.hibernate.internal.util.collections.LockModeEnumMap;
import org.hibernate.jdbc.Expectation; import org.hibernate.jdbc.Expectation;
import org.hibernate.jdbc.TooManyRowsAffectedException; import org.hibernate.jdbc.TooManyRowsAffectedException;
import org.hibernate.loader.ast.internal.CacheEntityLoaderHelper;
import org.hibernate.loader.ast.internal.LoaderSelectBuilder; import org.hibernate.loader.ast.internal.LoaderSelectBuilder;
import org.hibernate.loader.ast.internal.LoaderSqlAstCreationState; import org.hibernate.loader.ast.internal.LoaderSqlAstCreationState;
import org.hibernate.loader.ast.internal.MultiIdLoaderStandard; import org.hibernate.loader.ast.internal.MultiIdLoaderStandard;
@ -137,7 +135,6 @@ import org.hibernate.loader.ast.spi.MultiNaturalIdLoader;
import org.hibernate.loader.ast.spi.NaturalIdLoader; import org.hibernate.loader.ast.spi.NaturalIdLoader;
import org.hibernate.loader.ast.spi.SingleIdEntityLoader; import org.hibernate.loader.ast.spi.SingleIdEntityLoader;
import org.hibernate.loader.ast.spi.SingleUniqueKeyEntityLoader; import org.hibernate.loader.ast.spi.SingleUniqueKeyEntityLoader;
import org.hibernate.loader.entity.CacheEntityLoaderHelper;
import org.hibernate.mapping.Any; import org.hibernate.mapping.Any;
import org.hibernate.mapping.BasicValue; import org.hibernate.mapping.BasicValue;
import org.hibernate.mapping.Column; import org.hibernate.mapping.Column;

View File

@ -0,0 +1,31 @@
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html.
*/
/**
* Support for accessing the persistent state of an entity or embeddable.
* <p>
* The overall strategy of the various ways to access a property is defined by the
* {@link org.hibernate.property.access.spi.PropertyAccessStrategy} contract.
* <p>
* The access for a specific property is modeled by a
* {@link org.hibernate.property.access.spi.PropertyAccess} instance build from the strategy, exposing
* {@link org.hibernate.property.access.spi.Getter} and {@link org.hibernate.property.access.spi.Setter}
* delegates for accessing the properties values.
* <p>
* {@link org.hibernate.property.access.spi.BuiltInPropertyAccessStrategies} defines the built-in
* named strategies understood in terms of mappings. In mappings, users may refer to those short names
* for referring to certain built-in strategies. Users may also implement their own
* strategy and refer to that by fully-qualified name, or they may leverage the
* {@link org.hibernate.boot.registry.selector.spi.StrategySelector} service to define short-naming
* for their custom strategies.
*
* @see org.hibernate.annotations.AttributeAccessor
* @see jakarta.persistence.Access
*
* @author Steve Ebersole
*/
package org.hibernate.property.access;

View File

@ -6,21 +6,6 @@
*/ */
/** /**
* Defines strategies for accessing the persistent properties of an entity or composite. * Integration contracts related with {@link org.hibernate.property.access.spi.PropertyAccessStrategy}
* <p>
* The overall strategy of the various ways to access a property is defined by the
* {@link org.hibernate.property.access.spi.PropertyAccessStrategy} contract.
* <p>
* The access for a specific property is modeled by a
* {@link org.hibernate.property.access.spi.PropertyAccess} instance build from the strategy, exposing
* {@link org.hibernate.property.access.spi.Getter} and {@link org.hibernate.property.access.spi.Setter}
* delegates for accessing the properties values.
* <p>
* {@link org.hibernate.property.access.spi.BuiltInPropertyAccessStrategies} defines the built-in
* named strategies understood in terms of mappings. In mappings, users may refer to those short names
* for referring to certain built-in strategies. Users may also implement their own
* strategy and refer to that by fully-qualified name, or they may leverage the
* {@link org.hibernate.boot.registry.selector.spi.StrategySelector} service to define short-naming
* for their custom strategies.
*/ */
package org.hibernate.property.access.spi; package org.hibernate.property.access.spi;

View File

@ -31,7 +31,7 @@ import org.hibernate.event.spi.PreLoadEvent;
import org.hibernate.event.spi.PreLoadEventListener; import org.hibernate.event.spi.PreLoadEventListener;
import org.hibernate.internal.util.NullnessHelper; import org.hibernate.internal.util.NullnessHelper;
import org.hibernate.internal.util.StringHelper; import org.hibernate.internal.util.StringHelper;
import org.hibernate.loader.entity.CacheEntityLoaderHelper; import org.hibernate.loader.ast.internal.CacheEntityLoaderHelper;
import org.hibernate.metamodel.mapping.AttributeMapping; import org.hibernate.metamodel.mapping.AttributeMapping;
import org.hibernate.metamodel.mapping.AttributeMetadata; import org.hibernate.metamodel.mapping.AttributeMetadata;
import org.hibernate.metamodel.mapping.EntityDiscriminatorMapping; import org.hibernate.metamodel.mapping.EntityDiscriminatorMapping;

View File

@ -26,12 +26,12 @@ import org.hibernate.envers.internal.entities.mapper.id.MultipleIdMapper;
import org.hibernate.envers.internal.entities.mapper.id.NestedEmbeddedIdMapper; import org.hibernate.envers.internal.entities.mapper.id.NestedEmbeddedIdMapper;
import org.hibernate.envers.internal.entities.mapper.id.SimpleIdMapperBuilder; import org.hibernate.envers.internal.entities.mapper.id.SimpleIdMapperBuilder;
import org.hibernate.envers.internal.entities.mapper.id.SingleIdMapper; import org.hibernate.envers.internal.entities.mapper.id.SingleIdMapper;
import org.hibernate.loader.PropertyPath;
import org.hibernate.mapping.Component; import org.hibernate.mapping.Component;
import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property; import org.hibernate.mapping.Property;
import org.hibernate.mapping.ToOne; import org.hibernate.mapping.ToOne;
import org.hibernate.mapping.Value; import org.hibernate.mapping.Value;
import org.hibernate.spi.NavigablePath;
import org.hibernate.type.ComponentType; import org.hibernate.type.ComponentType;
import org.hibernate.type.ManyToOneType; import org.hibernate.type.ManyToOneType;
import org.hibernate.type.Type; import org.hibernate.type.Type;
@ -67,7 +67,7 @@ public final class IdMetadataGenerator extends AbstractMetadataGenerator {
Property virtualProperty, Property virtualProperty,
boolean audited) { boolean audited) {
if ( PropertyPath.IDENTIFIER_MAPPER_PROPERTY.equals( mappedProperty.getName() ) ) { if ( NavigablePath.IDENTIFIER_MAPPER_PROPERTY.equals( mappedProperty.getName() ) ) {
return false; return false;
} }

View File

@ -16,13 +16,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Lob;
import jakarta.persistence.MapKey;
import jakarta.persistence.MapKeyEnumerated;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Version;
import org.hibernate.HibernateException; import org.hibernate.HibernateException;
import org.hibernate.annotations.common.reflection.ReflectionManager; import org.hibernate.annotations.common.reflection.ReflectionManager;
import org.hibernate.annotations.common.reflection.XClass; import org.hibernate.annotations.common.reflection.XClass;
@ -43,10 +36,17 @@ import org.hibernate.envers.internal.tools.MappingTools;
import org.hibernate.envers.internal.tools.ReflectionTools; import org.hibernate.envers.internal.tools.ReflectionTools;
import org.hibernate.envers.internal.tools.StringTools; import org.hibernate.envers.internal.tools.StringTools;
import org.hibernate.internal.util.StringHelper; import org.hibernate.internal.util.StringHelper;
import org.hibernate.loader.PropertyPath;
import org.hibernate.mapping.Component; import org.hibernate.mapping.Component;
import org.hibernate.mapping.Property; import org.hibernate.mapping.Property;
import org.hibernate.mapping.Value; import org.hibernate.mapping.Value;
import org.hibernate.spi.NavigablePath;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Lob;
import jakarta.persistence.MapKey;
import jakarta.persistence.MapKeyEnumerated;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Version;
import static org.hibernate.envers.internal.tools.Tools.newHashMap; import static org.hibernate.envers.internal.tools.Tools.newHashMap;
import static org.hibernate.envers.internal.tools.Tools.newHashSet; import static org.hibernate.envers.internal.tools.Tools.newHashSet;
@ -290,7 +290,7 @@ public class AuditedPropertiesReader {
final Property property = propertyIter.next(); final Property property = propertyIter.next();
addPersistentProperty( property ); addPersistentProperty( property );
// See HHH-6636 // See HHH-6636
if ( "embedded".equals( property.getPropertyAccessorName() ) && !PropertyPath.IDENTIFIER_MAPPER_PROPERTY.equals( property.getName() ) ) { if ( "embedded".equals( property.getPropertyAccessorName() ) && !NavigablePath.IDENTIFIER_MAPPER_PROPERTY.equals( property.getName() ) ) {
createPropertiesGroupMapping( property ); createPropertiesGroupMapping( property );
} }
} }