57
57
import org .hibernate .jdbc .ReturningWork ;
58
58
import org .hibernate .jdbc .Work ;
59
59
import org .hibernate .jdbc .WorkExecutorVisitable ;
60
- import org .hibernate .jpa .spi .NativeQueryConstructorTransformer ;
61
60
import org .hibernate .jpa .spi .NativeQueryListTransformer ;
62
61
import org .hibernate .jpa .spi .NativeQueryMapTransformer ;
63
62
import org .hibernate .jpa .spi .NativeQueryTupleTransformer ;
124
123
import org .hibernate .type .spi .TypeConfiguration ;
125
124
126
125
import static java .lang .Boolean .TRUE ;
127
- import static org .hibernate .internal .util .ReflectHelper .isClass ;
128
126
import static org .hibernate .internal .util .StringHelper .isEmpty ;
129
127
import static org .hibernate .internal .util .StringHelper .isNotEmpty ;
130
128
import static org .hibernate .jpa .internal .util .FlushModeTypeHelper .getFlushModeType ;
@@ -989,34 +987,6 @@ public NativeQueryImplementor createNativeQuery(String sqlString, @Nullable Clas
989
987
}
990
988
}
991
989
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
-
1020
990
final EntityPersister requireEntityPersister (Class <?> entityClass ) {
1021
991
return getMappingMetamodel ().getEntityDescriptor ( entityClass );
1022
992
}
@@ -1055,6 +1025,11 @@ public <T> NativeQueryImplementor<T> createNativeQuery(String sqlString, Class<T
1055
1025
public <T > NativeQueryImplementor <T > createNativeQuery (String sqlString , String resultSetMappingName , Class <T > resultClass ) {
1056
1026
@ SuppressWarnings ("unchecked" )
1057
1027
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 ) {
1058
1033
if ( Tuple .class .equals ( resultClass ) ) {
1059
1034
query .setTupleTransformer ( NativeQueryTupleTransformer .INSTANCE );
1060
1035
}
@@ -1064,7 +1039,6 @@ else if ( Map.class.equals( resultClass ) ) {
1064
1039
else if ( List .class .equals ( resultClass ) ) {
1065
1040
query .setTupleTransformer ( NativeQueryListTransformer .INSTANCE );
1066
1041
}
1067
- return query ;
1068
1042
}
1069
1043
1070
1044
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0 commit comments