Envers не создает пользовательскую таблицу ревизий

У меня есть приложение с настроенной сущностью Revision, но при развертывании оно создает приложение REVINFO по умолчанию:

Ревизионная сущность:

@Entity
@Table(name = "CustomRevisionEntity", catalog = "molecular")
@RevisionEntity(CustomRevisionEntityListener.class)
public class CustomRevisionEntity extends DefaultRevisionEntity {

    private String username;

    public String getUsername() { return username; }
    public void setUsername(String username) { this.username = username; }
}

Прослушиватель Entity Entity:

public class CustomRevisionEntityListener implements RevisionListener {

    public final static String ANONYMOUS_USERNAME = "anonymous";

    @Override
    public void newRevision(Object revisionEntity) {
        CustomRevisionEntity exampleRevEntity = (CustomRevisionEntity) revisionEntity;
        String currentUserLogin;
        if(SecurityUtils.getCurrentUserLogin().isPresent())
            currentUserLogin = SecurityUtils.getCurrentUserLogin().get();
        else
            currentUserLogin = ANONYMOUS_USERNAME;
        exampleRevEntity.setUsername(currentUserLogin);
    }

Свойства пружинного профиля:

 jpa:
        database-platform: org.hibernate.dialect.MySQL5Dialect
        database: MYSQL
        show-sql: true
        generate-ddl: true
        hibernate:
            ddl-auto: update
            naming:
                physical-strategy: org.wwarn.surveyorDM.config.HibernateAuditTablesNamingStrategy
        properties:
            hibernate.id.new_generator_mappings: false
            hibernate.cache.use_second_level_cache: true
            hibernate.cache.use_query_cache: false
            hibernate.generate_statistics: true
            hibernate.cache.region.factory_class: org.hibernate.cache.jcache.JCacheRegionFactory

Версия Envers - 5.2.12

Этот вопрос не применим, потому что я использую Spring boot и у меня нет XML-файла с ручными сопоставлениями

Я действительно не вижу, что я делаю что-то отличное от официального руководства. Есть идеи?

1 ответ

Решение

Хорошо, так что я оставлю ответ о том, как я с этим разобрался, просто на случай, если это поможет кому-то еще в такой же ситуации.

В Spring у нас есть возможность указать сущности, которые мы хотим, чтобы приложение сканировало при запуске, в моем случае мне нужно было указать это при условии, что мне пришлось импортировать сущности из других модулей через maven, поэтому при добавлении entityScan, например:

@EntityScan(basePackages = {
    "org.wwarn.malaria.server.data",
    "org.wwarn.chassis.server.data",
    "org.wwarn.surveyorDM.domain.vivax",
    "org.wwarn.surveyorDM.domain"})

Мы говорим нашему приложению о поиске сущностей в этих пакетах и ​​только в этих пакетах, моя конфигурация для RevisionEntity была в config.envers, поэтому все, что мне нужно было сделать, это добавить следующую строку в мой @EntityScan, и я мог персонализировать Revision Entity:

"org.wwarn.surveyorDM.config.envers"
Другие вопросы по тегам