Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public UnknownEntityTypeException(String message, Throwable cause) {
}

public UnknownEntityTypeException(String entityName) {
super( "Unknown entity type: " + entityName );
super( "Unknown entity type '" + entityName + "'" );
}

public UnknownEntityTypeException(Class<?> entityClass) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import org.hibernate.EntityNameResolver;
import org.hibernate.Interceptor;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;

/**
* @author Steve Ebersole
Expand All @@ -28,15 +27,16 @@ public String resolveEntityName(Object entity) {
return entityName;
}

for ( EntityNameResolver resolver : sessionFactory.getSessionFactoryOptions().getEntityNameResolvers() ) {
for ( EntityNameResolver resolver :
sessionFactory.getSessionFactoryOptions().getEntityNameResolvers() ) {
entityName = resolver.resolveEntityName( entity );
if ( entityName != null ) {
return entityName;
}
}

final MappingMetamodelImplementor mappingMetamodel = sessionFactory.getMappingMetamodel();
for ( EntityNameResolver resolver : mappingMetamodel.getEntityNameResolvers() ) {
for ( EntityNameResolver resolver :
sessionFactory.getMappingMetamodel().getEntityNameResolvers() ) {
entityName = resolver.resolveEntityName( entity );
if ( entityName != null ) {
return entityName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import jakarta.persistence.CacheRetrieveMode;
import jakarta.persistence.CacheStoreMode;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityGraph;
import jakarta.persistence.EntityNotFoundException;
import jakarta.persistence.FindOption;
Expand Down Expand Up @@ -1526,21 +1527,30 @@ public EntityPersister getEntityPersister(final String entityName, final Object
return requireEntityPersister( guessEntityName( object ) );
}
else {
// try block is a hack around fact that currently tuplizers are not
// given the opportunity to resolve a subclass entity name. this
// allows the (we assume custom) interceptor the ability to
// try block is a hack around fact that currently tuplizers are
// not given the opportunity to resolve a subclass entity name.
// This allows the (we assume custom) interceptor the ability to
// influence this decision if we were not able to based on the
// given entityName
try {
return requireEntityPersister( entityName )
.getSubclassEntityPersister( object, getFactory() );
}
catch ( HibernateException e ) {
catch ( UnknownEntityTypeException uee ) {
try {
return getEntityPersister( null, object );
}
catch ( HibernateException e2 ) {
throw e;
catch ( HibernateException e ) {
final Class<?> objectClass = object.getClass();
final String problem =
objectClass.isAnnotationPresent( Entity.class )
? "does not belong to this persistence unit"
: "is not annotated '@Entity'";
throw new UnknownEntityTypeException(
uee.getMessage()
+ " ('" + objectClass.getSimpleName() + "' " + problem + ")",
e
);
}
}
}
Expand Down
Loading