我有一个发布
的jax-rs REST服务 ArrayList<Book>
服务器的对象。
在服务器上,我遍历每本书,将其转换为BookEntity(我正在使用JPA),然后保留每本书。
如果任何BookEntity无法持久化,我希望整个POST操作失败,并且该提交的ArrayList中没有Book Entities被保留。我想回滚整个操作,以便全部或全部。
仅仅使用容器管理事务(我知道您只需注入实体管理器即可免费获得)可以解决这个问题吗?或者我需要JTA才能这样做?关于事务管理的哪些部分是自动完成的,我有点困惑?
谢谢!
答案 0 :(得分:1)
仅注入实体管理器并不会为您提供容器管理的事务。这些是为服务启用CMT的先决条件:
@TransactionManagement(CONTAINER)
。这是默认值,因此可以省略整个注释如果满足所有先决条件,则对于服务上的任何给定业务方法,容器将自动管理其事务。可以通过使用TransactionAttribute
注释逐个方法地对事务行为进行微调,但默认情况下是针对每个方法: