scala actor和持久化上下文

时间:2009-10-11 13:49:30

标签: scala jpa

每次动作时,是否可以将持久化上下文注入scala actor?我有一个双Java / Scala spring应用程序,我使用spring注释将我的Java服务和方法标记为事务性。我想在我的scala actor中使用类似的功能。也就是说,演员应该在每次响应消息时在单个事务中操作。有没有人尝试类似的东西,或者有类似的例子吗?

1 个答案:

答案 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注释。