Как передать свойства Enver в Grails 3? - PullRequest
0 голосов
/ 14 января 2020

Я использую Hibernate Envers в своем приложении Grails и пытаюсь установить свойство org.hibernate.envers.audit_strategy. Как правильно настроить это?

Я попытался добавить следующее к application.yml:

org.hibernate:
    envers:
        audit_strategy: 'org.hibernate.envers.strategy.ValidityAuditStrategy'

Я попробовал несколько вариантов этого, а также попытался установить его в application.groovy, но я не могу заставить Envers прочитать его.

Я бы предпочел включить его в исходный код проекта, а не устанавливать его в командной строке.

Обновление:

Другая конфигурация, которая не работает (application.yml):

hibernate:
    additionalProperties:
        org.hibernate:
            envers:
                audit_strategy: 'org.hibernate.envers.strategy.ValidityAuditStrategy'

Обновление 2:

Я заметил в отладчике, что там является вложенной картой в конфигурации, как показано на скриншоте ниже. Это не позволяет AuditEntitiesConfiguration правильно прочитать свойство, поскольку оно просто использует map.get.

Почему это происходит? Что-то не так с моим форматом YAML?

enter image description here

Я попытался упростить настройку YAML для этого свойства до одной строки, но это не помогло :

org.hibernate.envers.audit_strategy: 'org.hibernate.envers.strategy.ValidityAuditStrategy'

1 Ответ

1 голос
/ 16 января 2020

Я обнаружил, что могу заставить его работать, изменив класс Application:

    static void main(String[] args) {
        System.setProperty('org.hibernate.envers.audit_strategy', 'org.hibernate.envers.strategy.ValidityAuditStrategy')
        GrailsApp.run(Application, args)
    }

Я открыт для лучших решений.

...