5757import org .hibernate .jdbc .ReturningWork ;
5858import org .hibernate .jdbc .Work ;
5959import org .hibernate .jdbc .WorkExecutorVisitable ;
60- import org .hibernate .jpa .spi .NativeQueryConstructorTransformer ;
6160import org .hibernate .jpa .spi .NativeQueryListTransformer ;
6261import org .hibernate .jpa .spi .NativeQueryMapTransformer ;
6362import org .hibernate .jpa .spi .NativeQueryTupleTransformer ;
124123import org .hibernate .type .spi .TypeConfiguration ;
125124
126125import static java .lang .Boolean .TRUE ;
127- import static org .hibernate .internal .util .ReflectHelper .isClass ;
128126import static org .hibernate .internal .util .StringHelper .isEmpty ;
129127import static org .hibernate .internal .util .StringHelper .isNotEmpty ;
130128import static org .hibernate .jpa .internal .util .FlushModeTypeHelper .getFlushModeType ;
@@ -989,34 +987,6 @@ public NativeQueryImplementor createNativeQuery(String sqlString, @Nullable Clas
989987 }
990988 }
991989
992- /**
993- * @deprecated Use {@link NativeQueryImpl#NativeQueryImpl(String, Class, SharedSessionContractImplementor)} instead
994- */
995- @ Deprecated (forRemoval = true )
996- protected <T > void addResultType (Class <T > resultClass , NativeQueryImplementor <T > query ) {
997- if ( Tuple .class .equals ( resultClass ) ) {
998- query .setTupleTransformer ( NativeQueryTupleTransformer .INSTANCE );
999- }
1000- else if ( Map .class .equals ( resultClass ) ) {
1001- query .setTupleTransformer ( NativeQueryMapTransformer .INSTANCE );
1002- }
1003- else if ( List .class .equals ( resultClass ) ) {
1004- query .setTupleTransformer ( NativeQueryListTransformer .INSTANCE );
1005- }
1006- else if ( getMappingMetamodel ().isEntityClass ( resultClass ) ) {
1007- query .addEntity ( resultClass , LockMode .READ );
1008- }
1009- else if ( resultClass != Object .class && resultClass != Object [].class ) {
1010- if ( isClass ( resultClass ) && !hasJavaTypeDescriptor ( resultClass ) ) {
1011- // not a basic type
1012- query .setTupleTransformer ( new NativeQueryConstructorTransformer <>( resultClass ) );
1013- }
1014- else {
1015- query .addResultTypeClass ( resultClass );
1016- }
1017- }
1018- }
1019-
1020990 final EntityPersister requireEntityPersister (Class <?> entityClass ) {
1021991 return getMappingMetamodel ().getEntityDescriptor ( entityClass );
1022992 }
@@ -1055,6 +1025,11 @@ public <T> NativeQueryImplementor<T> createNativeQuery(String sqlString, Class<T
10551025 public <T > NativeQueryImplementor <T > createNativeQuery (String sqlString , String resultSetMappingName , Class <T > resultClass ) {
10561026 @ SuppressWarnings ("unchecked" )
10571027 final NativeQueryImplementor <T > query = createNativeQuery ( sqlString , resultSetMappingName );
1028+ setTupleTransformerForResultType ( resultClass , query );
1029+ return query ;
1030+ }
1031+
1032+ private static <T > void setTupleTransformerForResultType (Class <T > resultClass , NativeQueryImplementor <T > query ) {
10581033 if ( Tuple .class .equals ( resultClass ) ) {
10591034 query .setTupleTransformer ( NativeQueryTupleTransformer .INSTANCE );
10601035 }
@@ -1064,7 +1039,6 @@ else if ( Map.class.equals( resultClass ) ) {
10641039 else if ( List .class .equals ( resultClass ) ) {
10651040 query .setTupleTransformer ( NativeQueryListTransformer .INSTANCE );
10661041 }
1067- return query ;
10681042 }
10691043
10701044 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0 commit comments