Hibernate与Akka演员一起工作吗?

zin*_*ing 4 multithreading hibernate akka

我主要关心的是ThreadLocal。Akka Actor不会绑定到特定线程,因此在Akka Actor上使用线程本地存储都会出现问题

休眠使用ThreadLocal吗?

他们可以在这种情况下共存吗?

kil*_*ilo 5

是。我与Akka actor一起使用了Hibernate(通过JPA界面)。

我有两种处理多线程的方法:

  1. 如果每个角色都更新了不会与其他角色冲突的信息(例如,表中的每一行都不会被多个角色使用),则可以为每个角色创建一个单独的实体管理器,并在该角色的整个生命周期中使用它。但是,如果事务失败,则最好丢弃实体管理器。
  2. 否则,在需要数据库访问的参与者的每次调用中(通过其接收函数),创建一个新的实体管理器,开始一个事务,访问数据库,提交该事务,然后关闭实体管理器。

我有在生产系统中运行的第一种方法。