2016-03-30 3 views
2

Есть ли способ по умолчанию игнорировать все поля, кроме явно включенных в Javers? Я пытаюсь сохранить объекты прокси-сервера CGLib, и он собирает все поля CGLib вместе с полями @Entity. Так что я думаю, что будет работать лучше, по умолчанию игнорируется, а аннотация/конфиг - «использовать эти поля».Ошибка игнорирования по умолчанию Javers вместо значения по умолчанию:

Я также пробовал .withMappingStyle (MappingStyle.BEAN), который, похоже, не имеет значения.

ответ

0

Там нет такого варианта, но

  • вы можете игнорировать эти проксите-поля CGLIB глобально по типу (если у них есть какие-то значимые типы) с помощью JaversBuilder.registerIgnoredClass(Class<?> ignoredClass)

  • Я не рекомендую совершать CGLIB прокси объекты непосредственно к JaVers. Для Hibernate мы имеем unproxy крюк, см http://javers.org/documentation/domain-configuration/#hooks Вы можете implememt unproxy крюк для ОРМ

+0

Я не думаю, что они имеют один конкретный тип, так что не что-то легко игнорировать подобное. Я действительно удивлен тем, что у вас есть способ игнорировать определенные поля, у вас нет инверсии только включенных в него конкретных полей. В некотором смысле имеет смысл, учитывая, что это должен быть контрольный журнал, и вы действительно хотите включить все как обычно. И да, увидел ObjectAccessHook, который, я полагаю, я могу использовать для unbox для реального типа класса из прокси-объекта CGLib. – Drizzt321

+0

И я вижу, что, по-видимому, CGLib создает дополнительный метод getter, поэтому даже при сопоставлении стиля Bean для геттеров он найдет материал CGlib. *вздох* – Drizzt321

Смежные вопросы