【问题标题】:Passing custom data to Hibernate Envers in Dropwizard application在 Dropwizard 应用程序中将自定义数据传递给 Hibernate Envers
【发布时间】:2016-09-06 19:15:33
【问题描述】:

我有一个使用Hibernate 的项目,我想使用Envers 进行日志记录,但我需要进行更改的用户名。我有一个Dropwizard application,我正在使用Hibernate envers 进行审核。

从文档中,我知道我应该实现 RevisionListener 并将用户名设置为 newRevision()。但是,我无法将用户名传递给CustomRevisionListener。我正在考虑实现会话,但后来我开始认为 Hibernate session 应该与 dropwizard session 不同,我想在休眠会话中传递这些数据,因为我想确保不同的用户名不会与某人的修订混合其他正在制作。

我将不胜感激对此的任何意见。

谢谢。

【问题讨论】:

    标签: java dropwizard hibernate-envers


    【解决方案1】:

    您可能想阅读我的帖子here

    总体思路始终相同,您希望应用程序存储一个包含侦听器所需相关信息的ThreadLocal 变量,然后在侦听器回调中访问该ThreadLocal 变量。值得注意的是,没有线程问题,因为所有 Envers 都发生在休眠会话本身的同一线程上下文中。

    我的建议是让您的 ThreadLocal 变量成为您设置属性的顶级类,以便将来需要对其进行扩展或跨实现重用,您可以轻松地做到这一点。

    【讨论】:

    • 我遇到了同样的问题,使用 dropwizard 和 hibernate envers,我已经尝试了你提到的方法,但是没有创建新的修订表。我应该手动创建它,以便它可以工作,因为现在数据将进入默认的 REVINFO 表
    猜你喜欢
    • 1970-01-01
    • 2016-10-15
    • 2018-08-18
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多