【问题标题】:How do I pass properties to Enver in Grails 3?如何在 Grails 3 中将属性传递给 Enver?
【发布时间】:2020-04-30 16:09:08
【问题描述】:

我在我的 Grails 应用程序中使用 Hibernate Envers,并尝试设置 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 格式有问题吗?

我尝试将此属性的 YAML 设置简化为一行,但没有帮助:

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

【问题讨论】:

    标签: hibernate grails configuration hibernate-envers grails-3.3


    【解决方案1】:

    我发现我可以通过修改 Application 类使其工作:

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

    我愿意接受更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      相关资源
      最近更新 更多