Как автоматически создавать таблицы аудита без использования spring.jpa.hibernate.ddl-auto с использованием Spring Hibernate - PullRequest
1 голос
/ 14 мая 2019

Мне нужно автоматически создавать таблицы аудита при сохранении в таблицу.Я добавил "org.hibernate:hibernate-envers:5.4.2".Окончательный вариант моего файла Gradle и аннотирование сущности с помощью @ Audited.

Я не могу использовать "spring.jpa.hibernate.ddl-auto" в файле приложения и мне нужен другой способ автоматического создания таблиц.Например, написать написание задачи или код Java.

Как я могу автоматически создать эти таблицы в БД.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Хотя Flyway и LiquiBase, вероятно, являются наиболее часто используемыми и известными способами переноса дельт базы данных в разных средах, они не единственные, см. Инструменты Hibernate .

Библиотека Hibernate Tools позволяет использовать генерацию схемы времени сборки и записывать эту дельту схемы в файл, который затем можно использовать и интегрировать как часть сборки или развертывания.

0 голосов
/ 14 мая 2019

Вы не можете автоматически сгенерировать таблицу, если для hibernate.ddl-auto установлено значение true.Как предложил @Uwe Allner, вы должны использовать flyway / liquibase.Они довольно легко интегрируются с Spring.Если вы используете их, каждый раз, когда вы будете запускать ваше приложение, каждый SQL-скрипт, который вам нужно было выполнить, будет.

Вы создадите свою таблицу аудита через эту базу данных управления версиями.У вас будет что-то вроде этого в вашем файле xml changelog (версия liquibase) для проверки вашей таблицы «table1»:

<changeSet id="3" author="user9353766">
    <createTable tableName="audit_table1">
        <column name="ID" type="bigint">
            <constraints primaryKey="true" nullable="false"/>
        </column>
        <column name="PROPERTY1" type="bigint">
            <constraints nullable="false"/>
        </column>
        <column name="REV" type="bigint"></column>
        <column name="REVTYPE" type="int"></column>
    </createTable>
</changeSet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...