Java 在Dropwizard应用程序中将自定义数据传递给Hibernate环境

Java 在Dropwizard应用程序中将自定义数据传递给Hibernate环境,java,dropwizard,hibernate-envers,Java,Dropwizard,Hibernate Envers,我有一个项目,我使用Hibernate,我想使用Envers进行日志记录,但我需要进行更改的用户名。我有一个Dropwizard应用程序,我正在使用Hibernate envers进行审计 从文档中,我知道我应该实现RevisionListener,并在newRevision()中设置用户名。但是,我无法将用户名传递给CustomRevisionListener。我曾考虑实施会话,但后来我开始考虑Hibernate会话应该不同于dropwizard会话,我希望在Hibernate会话中传递此数据

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

从文档中,我知道我应该实现
RevisionListener
,并在
newRevision()
中设置用户名。但是,我无法将用户名传递给
CustomRevisionListener
。我曾考虑实施会话,但后来我开始考虑
Hibernate会话
应该不同于
dropwizard会话
,我希望在Hibernate会话中传递此数据,因为我希望确保不同的用户名不会与其他人正在进行的修订混淆

如果您对此有任何意见,我将不胜感激


谢谢。

你可能想看看我的帖子

一般的想法都是一样的,您希望应用程序存储一个
ThreadLocal
变量,该变量包含侦听器需要的相关信息,然后在侦听器回调中访问该
ThreadLocal
变量。值得注意的是,没有线程问题,因为所有enver都发生在hibernate会话本身的同一线程上下文中


我的建议是将您的
ThreadLocal
变量设置为顶级类,您可以在上面设置属性,以便将来需要扩展它或在实现之间重用它时,可以轻松地这样做

使用dropwizard和hibernate envers,我也遇到了同样的问题,我已经尝试了您提到的方法,但是没有创建新的修订表。我应该手动创建它,以便它工作,因为现在数据将进入默认的REVINFO表吗