Проблема с методом isLoadedWithoutReference of PersistenceUtilHelper в случае переопределенного поля со стратегией FieldAccess - PullRequest
0 голосов
/ 30 апреля 2019

Мы используем метод Persistence.getPersistenceUtil (). IsLoaded, который вызывает метод PersistenceUtilHelper.isLoadedWithReference, и в нашем случае у нас есть переопределенное поле, и мы используем стратегию FieldAccess, но следующий код класса PersistenceUtilHelper не делает получить поле из исходного класса. на самом деле, если поле не найдено в текущем объекте, оно вызовет метод получения (как доступ к свойству): catch catch NoSuchFieldException без проверки суперприятий

private AttributeAccess buildAttributeAccess(final String attributeName) {
           final PrivilegedAction<AttributeAccess> action = new PrivilegedAction<AttributeAccess>() {
               @Override
               public AttributeAccess run() {
                   for ( Class clazz : classHierarchy ) {
                       try {
                           final Field field = clazz.getDeclaredField( attributeName );
                           if ( field != null ) {
                               return new FieldAttributeAccess( field );
                           }
                       }
                       catch ( NoSuchFieldException e ) {
                           final Method method = getMethod( clazz, attributeName );
                           if ( method != null ) {
                               return new MethodAttributeAccess( attributeName, method );
                           }
                       }
                   }
                   //we could not find any match
                   return new NoSuchAttributeAccess( specifiedClass, attributeName );
               }
           };
           return System.getSecurityManager() != null ? AccessController.doPrivileged( action ) : action.run();
       }

Это ошибка в hibernate-entitymanager?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...