将数据传递给envers版本监听器

时间:2011-08-12 15:49:03

标签: java playframework hibernate-envers

我正在尝试使用Enver的RevisionEntity存储修订注释,以便它与版本ID和时间戳位于同一个表中,即使更改了多个实体,也只存储一次。

我目前的方法是

  • 处理请求的控制器操作将注释放入会话变量
  • 我的自定义RevisionListener读取会话变量,将注释添加到RevisionEntity,并清除会话变量
但是,我对这种方法并不满意。看起来它很容易出现竞争条件和其他愚蠢行为。有什么方法可以让它更坚固吗?也许直接在控制器操作中访问RevisionEntity?

1 个答案:

答案 0 :(得分:2)

我不确定我是否真的了解您的问题,但如果您只想在请求处理期间存储一些信息,则可以使用 Http.Request.current().args。正如description in the API docs所说,它是:

  

存储您的请求特定数据的可用空间

您的控制器操作只需复制params的评论(或他们来自的任何地方)并将其存储在args地图中,然后RevisionListener可以从那里检索它们