Hibernate envers - получить проверенные свойства объекта

Существует ли простой (встроенный) способ получить все проверенные свойства объекта? например

public class SomeClass {
    @Audited
    private String auditedString;

    private String otherString;
    // getter, setter
}

Я хотел бы знать, есть ли в envers какая-то служебная функция, которая возвращает массив свойств @Audited (например, [auditedString]) для данного класса или экземпляра.

Благодарю вас!

Мария


person maria vill    schedule 10.02.2016    source источник
comment
Мария, Вы ищете способ получить проверенные данные?   -  person Rohan Kushwaha    schedule 10.02.2016
comment
Привет! нет, только имена проверенных свойств. Возможно, есть какая-то встроенная функция, которую я не нашел.   -  person maria vill    schedule 10.02.2016
comment
У меня была похожая потребность, чтобы перечислить имена полей всех свойств modified, и мне пришлось сделать это самому. Но перечислить имена полей с аннотацией @Audited легко с отражением Java. Просто имейте в виду, что @Audited можно указать в самом классе.   -  person Vlastimil Ovčáčík    schedule 11.02.2016
comment
Привет, спасибо за ваш комментарий. Я знаю, что это можно сделать с помощью размышлений, но я не хотел изобретать велосипед и хотел узнать, дает ли envers уже что-то в этом направлении.   -  person maria vill    schedule 11.02.2016


Ответы (1)


Что-то вроде следующего будет работать, но помните, что код обращается к внутренним компонентам Envers и не гарантируется его переносимость между выпусками.

// Get the Envers Service
final EnversService enversService = session.getSessionFactory()
        .getServiceRegistry()
        .getService( EnversService.class );

// Get the entity configuration
EntityConfiguration entityCfg = enversService.getEntityConfigurations()
        .get( auditEntityName );

// Set that contains the properties associated with the audited entity.
Set<PropertyData> properties = entityCfg.getPropertyMapper()
        .getProperties()
        .keySet();
person Naros    schedule 09.12.2016