1
如果我们正在访问JPA
或EBean
的持久对象,我们通常使用@Transactional
注释控制器类的操作方法。问题是何时使用@Transactional注释以及何时使用JPA.withTransaction()
(假设我们正在使用JPA进行持久化)。 这两者有什么区别,哪一个更好?playframework:@Transactional注释和JPA.withTransaction()方法之间的区别
如果我们正在访问JPA
或EBean
的持久对象,我们通常使用@Transactional
注释控制器类的操作方法。问题是何时使用@Transactional注释以及何时使用JPA.withTransaction()
(假设我们正在使用JPA进行持久化)。 这两者有什么区别,哪一个更好?playframework:@Transactional注释和JPA.withTransaction()方法之间的区别
您可以使用JPA.withTransaction作为块,@Transactional用于方法或动作。
我不认为这是一个主要区别,我正在讨论的功能和架构而不是代码块范围。 – gmuhammad 2012-07-23 10:15:09
正如你可以在https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/java/play/db/jpa/TransactionalAction.java看到的@Transactional用JPA包装一个动作.withTransaction(使用默认参数)。 – rayyildiz 2012-07-23 12:00:08
是的,但有时@Transactional注释不起作用,您必须使用'JPA.withTransaction()'。这是真的吗? – gmuhammad 2012-08-06 16:11:18