Hibernate Envers - таблица REVINFO не существует

Я использую Hibernate 4.3.6, и я попытался использовать функциональность Envers, добавив аннотацию @Audited к одному из моих классов @Entity. (Jar envers - hibernate-envers-4.3.6.Final.jar - находится в моем CLASSPATH.)

Когда я запускаю свой код, который отлично работает без аннотации @Audited, я получаю исключение org.hibernate.exception.SQLGrammarException:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dbname.REVINFO' doesn't exist

Я не вижу документации о необходимости создания таблицы REVINFO, поэтому я предполагаю, что она будет создана автоматически, но, похоже, этого не происходит. Я что-то упускаю?

(Если я создам его вручную в соответствии со схемой, описанной здесь - http://thinkinginsoftware.blogspot.co.il/2011/03/auditing-entities-with-hibernate-jpa.html - тогда я получаю исключение, что * _AUD не существует. Я думаю У меня такой же вопрос обо всех таблицах * _AUD.)

Спасибо, Реувен


person rweiser    schedule 06.10.2014    source источник


Ответы (2)


Да, см. Ниже: глава 7. Вам нужна таблица REV INFO и таблица аудита для каждой сущности, по умолчанию с именем {entity name} _AUD, хотя это можно настроить. Чтобы они сгенерировались автоматически, вам необходимо включить создание схемы Hibernate.

http://docs.jboss.org/envers/docs/

Обычно я запускаю создание схемы для тестовой базы данных, а затем синхронизирую изменения с базой данных приложения с помощью какого-либо инструмента БД.

См. Также здесь подробные сведения о задаче Ant, которую можно использовать для генерации DDL:

http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch15.html#envers-generateschema.

person Alan Hay    schedule 06.10.2014
comment
Спасибо, Алан! Это действительно помогло. - person rweiser; 07.10.2014
comment
Ладно, хорошо. Вы должны принять ответ: мета. stackexchange.com/questions/5234/ - person Alan Hay; 07.10.2014
comment
Это старое место для документации Envers. Вам следует использовать этот docs.jboss.org/ hibernate / orm / 4.3 / devguide / en-US / html / ch15.html. - person Dkyc; 10.11.2014

Пожалуйста, проверьте еще раз, что вы добавили <prop key="hibernate.hbm2ddl.auto">update</prop>property в файл конфигурации Spring.

У меня также была такая же проблема, и я решил ее, добавив указанное выше свойство.

Спасибо.

person Vish    schedule 21.07.2015