繁体   English   中英

在 Play 中调用 JPA.withTransaction() 的开销是多少! 2.x

[英]What is the overhead for calling JPA.withTransaction() in Play! 2.x

因此,寻找如何在游戏中使用 JPA 有点让人头疼,但我最近发现您可以使用JPA.withTransaction()@Transactional控制器方法之外进行事务。 不过,我认为这并非没有成本。 IE:

JPA.withTransaction( () -> {
    ...do some db updates...
}

使用这种方法时,究竟会发生什么? 每次调用时是否都会创建另一个EntityManager ,或者是否引入了现有的? 它只是一个创建的交易吗? 只是想了解使用它的开销是多少。

奖励问题:如果我在许多并发运行的线程上使用它,是否有更好的方法让它们都获得一些全局事务?

您应该考虑到 paly 框架具有不同的类型来管理 EntityManager 和连接: https ://www.playframework.com/documentation/2.3.x/JavaJPA

如果您正在使用

JPA.withTransaction( () -> {
    ...do some db updates...
}

play 框架使用单个事务创建一个新的实体管理器,该事务执行要在现场写入的内容。

其他方法可以是将@Transactional 用于控制器的操作。 通过这种方式,事务完全由框架管理,并且与正在进行的 http 请求相关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM