| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate Envers - кастомный атрибут |
| Автор: Alpes 15.8.2011, 09:24 | ||||
| Добрый день. Неболшая прилюдия к проблеме. Нужно отслеживать изменения сущности. Достигается это легко при помощи Hibernate Envers. Вот тут и тут весьма наглядно все описано, ну почти все: http://habrahabr.ru/blogs/java/120631/ http://docs.jboss.org/hibernate/envers/3.6/reference/en-US/html_single/ Кое что прописал в persistence.xml, кое что в pom'ник. Далее прописал анотацию @Audited для сущности. Хибирнейту не позволяеться создавать автоматически таблицы, так что вручную создал две необхадимые. Это REVINFO и resource_type_AUD. Все. Все работает. Изменяя, создавая и удаляя сущность в REVINFO и resource_type_AUD помещаются нужные записи. Но возникла проблема, когда понадобилось добавить кастомный атрибут в таблицу REVINFO. Это пользователь, который произвел изменение. По докам и статье на хабре все просто. Создается класс, наследуеться от DefaultRevisionEntity и прописывается анотация @org.hibernate.envers.RevisionEntity(MyRevisionListener.class) где указывается другой новый класс. MyRevisionListener реализует интерфейс RevisionListener, переопределяется метот newRevision в котором производим нужные манипуляции. Этот метод вызывается при любом изменени сущности, судя по описанию. В итоге ничего не изменилось, кто менял не попадает в таблицу. Вот код Это расширеный энтити
Это CustomListener
Что я нетак сделал? И правильно я понял, что надо в таблице REVINFO создать соответствующюю колонку и в новом классе прописывать анатацию @Column? Заране спаибо! |