在Play 2 Scala中处理事务的传统方法是什么?

TOB*_*TOB 5 database scala playframework playframework-2.0

我在Play 2.1 Scala项目中使用JDO进行数据存储.理想情况下,我希望每个请求都有自己的事务,在完成时提交,如果出现问题则回滚.

我可以想出的最好的方法是使用Action Composition,在那里我创建自己的Action类似对象来启动事务,将代码块包装Action在一起,对其进行评估并保存结果,提交或回滚事务,然后返回结果.

我唯一担心的是我的整个项目现在由DbActions而不是常规Actions组成.我不确定为什么这会让我感到担忧,除了我认为必须有一个更好的地方来做这件事.但是,当我检查可用的挂钩时GlobalSettings,看起来没有任何效果.

我应该一起去做DbAction并停止自我猜测,还是有一个地方可以将这种行为挂钩,以便我可以使用Action

托德

Tim*_*Tim 0

我不确定是否有最佳实践。我期待着阅读其他人的答案。

这一页应该向您展示如何做您想做的事情。基本上在 Global 中,您可以扩展 WithFilters 或覆盖 doFilter。您仍然只是包装操作,但您是从中心位置进行的。

现在,我不知道这是否比按照此处建议的动作合成更好。