99import org .hibernate .boot .query .NamedQueryDefinition ;
1010import org .hibernate .internal .CoreLogging ;
1111import org .hibernate .internal .CoreMessageLogger ;
12- import org .hibernate .internal . util . ReflectHelper ;
12+ import org .hibernate .metamodel . model . domain . spi . JpaMetamodelImplementor ;
1313
1414import java .lang .reflect .Field ;
1515
1616import static java .lang .Character .charCount ;
17+ import static java .lang .Character .isJavaIdentifierPart ;
1718
1819public class InjectionHelper {
1920 private static final CoreMessageLogger log = CoreLogging .messageLogger ( MetadataContext .class );
@@ -23,13 +24,11 @@ public static void injectEntityGraph(
2324 Class <?> metamodelClass ,
2425 JpaMetamodelImplementor jpaMetamodel ) {
2526 if ( metamodelClass != null ) {
27+ final String name = definition .name ();
28+ final String fieldName = '_' + javaIdentifier ( name );
29+ final var graph = jpaMetamodel .findEntityGraphByName ( name );
2630 try {
27- injectField (
28- metamodelClass ,
29- '_' + javaIdentifier ( definition .name () ),
30- jpaMetamodel .findEntityGraphByName ( definition .name () ),
31- false
32- );
31+ injectField ( metamodelClass , fieldName , graph , false );
3332 }
3433 catch ( NoSuchFieldException e ) {
3534 // ignore
@@ -39,13 +38,10 @@ public static void injectEntityGraph(
3938
4039 public static void injectTypedQueryReference (NamedQueryDefinition <?> definition , Class <?> metamodelClass ) {
4140 if ( metamodelClass != null ) {
41+ final String fieldName =
42+ '_' + javaIdentifier ( definition .getRegistrationName () ) + '_' ;
4243 try {
43- injectField (
44- metamodelClass ,
45- '_' + javaIdentifier ( definition .getRegistrationName () ) + '_' ,
46- definition ,
47- false
48- );
44+ injectField ( metamodelClass , fieldName , definition , false );
4945 }
5046 catch ( NoSuchFieldException e ) {
5147 // ignore
@@ -58,12 +54,7 @@ public static String javaIdentifier(String name) {
5854 int position = 0 ;
5955 while ( position < name .length () ) {
6056 final int codePoint = name .codePointAt ( position );
61- if ( Character .isJavaIdentifierPart (codePoint ) ) {
62- result .appendCodePoint ( codePoint );
63- }
64- else {
65- result .append ('_' );
66- }
57+ result .appendCodePoint ( isJavaIdentifierPart ( codePoint ) ? codePoint : '_' );
6758 position += charCount ( codePoint );
6859 }
6960 return result .toString ();
@@ -73,12 +64,13 @@ public static void injectField(
7364 Class <?> metamodelClass , String name , Object model ,
7465 boolean allowNonDeclaredFieldReference )
7566 throws NoSuchFieldException {
76- final Field field = allowNonDeclaredFieldReference
77- ? metamodelClass .getField (name )
78- : metamodelClass .getDeclaredField (name );
67+ final Field field =
68+ allowNonDeclaredFieldReference
69+ ? metamodelClass .getField ( name )
70+ : metamodelClass .getDeclaredField ( name );
7971 try {
8072 // should be public anyway, but to be sure...
81- ReflectHelper .ensureAccessibility ( field );
73+ // ReflectHelper.ensureAccessibility( field );
8274 field .set ( null , model );
8375 }
8476 catch (IllegalAccessException e ) {
0 commit comments