Skip to content

Commit ce1697f

Browse files
committed
add MappingMetamodel.isEntityClass() and clean up raw types
1 parent f57be13 commit ce1697f

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

hibernate-core/src/main/java/org/hibernate/internal/AbstractSharedSessionContract.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.hibernate.SessionEventListener;
3232
import org.hibernate.SessionException;
3333
import org.hibernate.Transaction;
34+
import org.hibernate.UnknownEntityTypeException;
3435
import org.hibernate.cache.spi.CacheTransactionSynchronization;
3536
import org.hibernate.engine.internal.SessionEventListenerManagerImpl;
3637
import org.hibernate.engine.jdbc.LobCreator;
@@ -729,7 +730,7 @@ public NativeQueryImplementor createNativeQuery(String sqlString, Class resultCl
729730
if ( Tuple.class.equals(resultClass) ) {
730731
query.setTupleTransformer( new NativeQueryTupleTransformer() );
731732
}
732-
else if ( getFactory().getMetamodel().findEntityDescriptor(resultClass)!=null ) {
733+
else if ( getFactory().getMetamodel().isEntityClass(resultClass) ) {
733734
query.addEntity( "alias1", resultClass.getName(), LockMode.READ );
734735
}
735736
return query;
@@ -738,12 +739,12 @@ else if ( getFactory().getMetamodel().findEntityDescriptor(resultClass)!=null )
738739
@Override @SuppressWarnings({"rawtypes", "unchecked"})
739740
public NativeQueryImplementor createNativeQuery(String sqlString, Class resultClass, String tableAlias) {
740741
NativeQueryImplementor query = createNativeQuery( sqlString );
741-
if ( Tuple.class.equals(resultClass) ) {
742-
query.setTupleTransformer( new NativeQueryTupleTransformer() );
743-
}
744-
else if ( getFactory().getMetamodel().findEntityDescriptor(resultClass)!=null ) {
742+
if ( getFactory().getMetamodel().isEntityClass(resultClass) ) {
745743
query.addEntity( tableAlias, resultClass.getName(), LockMode.READ );
746744
}
745+
else {
746+
throw new UnknownEntityTypeException( "unable to locate persister: " + resultClass.getName() );
747+
}
747748
return query;
748749
}
749750

hibernate-core/src/main/java/org/hibernate/metamodel/MappingMetamodel.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.hibernate.persister.entity.EntityPersister;
2121
import org.hibernate.query.NavigablePath;
2222
import org.hibernate.query.sqm.SqmExpressable;
23-
import org.hibernate.sql.ast.spi.SqlAstCreationState;
2423
import org.hibernate.sql.ast.tree.from.TableGroup;
2524
import org.hibernate.type.spi.TypeConfiguration;
2625

@@ -90,7 +89,7 @@ public interface MappingMetamodel {
9089
*
9190
* @see #findEntityDescriptor
9291
*/
93-
EntityPersister getEntityDescriptor(Class entityJavaType);
92+
EntityPersister getEntityDescriptor(Class<?> entityJavaType);
9493

9594
/**
9695
* Find an entity mapping descriptor based on its Hibernate entity-name.
@@ -104,7 +103,9 @@ public interface MappingMetamodel {
104103
*
105104
* @apiNote Returns {@code null} rather than throwing exception
106105
*/
107-
EntityPersister findEntityDescriptor(Class entityJavaType);
106+
EntityPersister findEntityDescriptor(Class<?> entityJavaType);
107+
108+
boolean isEntityClass(Class<?> entityJavaType);
108109

109110
/**
110111
* Locate an entity mapping descriptor by Class. The passed Class might
@@ -114,15 +115,15 @@ public interface MappingMetamodel {
114115
*
115116
* @throws org.hibernate.UnknownEntityTypeException If a matching EntityPersister cannot be located
116117
*/
117-
EntityPersister locateEntityDescriptor(Class byClass);
118+
EntityPersister locateEntityDescriptor(Class<?> byClass);
118119

119120
/**
120121
* @see #locateEntityDescriptor
121122
*
122123
* @deprecated (since 6.0) use {@link #locateEntityDescriptor(Class)} instead
123124
*/
124125
@Deprecated
125-
default EntityPersister locateEntityPersister(Class byClass) {
126+
default EntityPersister locateEntityPersister(Class<?> byClass) {
126127
return locateEntityDescriptor( byClass );
127128
}
128129

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -401,17 +401,22 @@ public EntityPersister findEntityDescriptor(String entityName) {
401401
}
402402

403403
@Override
404-
public EntityPersister findEntityDescriptor(Class entityJavaType) {
404+
public EntityPersister findEntityDescriptor(Class<?> entityJavaType) {
405405
return findEntityDescriptor( entityJavaType.getName() );
406406
}
407407

408+
@Override
409+
public boolean isEntityClass(Class<?> entityJavaType) {
410+
return entityPersisterMap.containsKey( entityJavaType.getName() );
411+
}
412+
408413
@Override
409414
public SessionFactoryImplementor getSessionFactory() {
410415
return sessionFactory;
411416
}
412417

413418
@Override
414-
public EntityPersister getEntityDescriptor(Class entityJavaType) {
419+
public EntityPersister getEntityDescriptor(Class<?> entityJavaType) {
415420
EntityPersister entityPersister = entityPersisterMap.get( entityJavaType.getName() );
416421
if ( entityPersister == null ) {
417422
String mappedEntityName = entityProxyInterfaceMap.get( entityJavaType );
@@ -428,7 +433,7 @@ public EntityPersister getEntityDescriptor(Class entityJavaType) {
428433
}
429434

430435
@Override
431-
public EntityPersister locateEntityDescriptor(Class byClass) {
436+
public EntityPersister locateEntityDescriptor(Class<?> byClass) {
432437
EntityPersister entityPersister = entityPersisterMap.get( byClass.getName() );
433438
if ( entityPersister == null ) {
434439
String mappedEntityName = entityProxyInterfaceMap.get( byClass );
@@ -562,7 +567,7 @@ public Map<String, CollectionPersister> collectionPersisters() {
562567
}
563568

564569
@Override
565-
public EntityPersister entityPersister(Class entityClass) {
570+
public EntityPersister entityPersister(Class<?> entityClass) {
566571
return entityPersister( entityClass.getName() );
567572
}
568573

hibernate-core/src/main/java/org/hibernate/metamodel/spi/MetamodelImplementor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public interface MetamodelImplementor extends MappingMetamodel, Metamodel {
4646
*
4747
* @throws MappingException Indicates persister for that class could not be found.
4848
*/
49-
EntityPersister entityPersister(Class entityClass);
49+
EntityPersister entityPersister(Class<?> entityClass);
5050

5151
/**
5252
* Locate the persister for an entity by the entity-name

0 commit comments

Comments
 (0)