每次动作时,是否可以将持久化上下文注入scala actor?我有一个双Java / Scala spring应用程序,我使用spring注释将我的Java服务和方法标记为事务性。我想在我的scala actor中使用类似的功能。也就是说,演员应该在每次响应消息时在单个事务中操作。有没有人尝试类似的东西,或者有类似的例子吗?
答案 0 :(得分:7)
为什么不通过注入actor本身的Dao
trait
来封装持久访问。通过这种方式,您可以拥有一个与持久性机制本身分离的持久性actor:
class DaoActor(val dao: Dao) extends Actor {
def act() = {
loop {
react {
case SaveTrade(trade) => dao.save(trade)
case ReadTrades(date) => dao.lookup(date) }
}
}
}
此外,您的Dao
可以用Java编码,因此您可以在那里添加@Transactional
注释。