关于事务回滚的问题

按照文档 编程式事务管理 - CUBA 框架开发者手册 (cuba-platform.cn)描述,手动开启事务。请问在出现异常后怎么手动回滚异常呢?是否必须使用 persistence.getEntityManager().persist来持久化?可否使用dataManager的相关方法?

  • 事务回滚
Transaction tx = persistence.createTransaction();
try {
    Customer customer = metadata.create(Customer.class);
    customer.setName("John Smith");
    persistence.getEntityManager().persist(customer);
    tx.commit();
} finally {
    tx.end(); **// 如果正确执行了 tx.commit() , tx.end() 不做任何操作,否则回滚事务**
}
  • dataManager 一般用于 WEB 层,它总是启用一个新的事务。可以使用 TransactionalDataManager 代替 dataManager

额。我使用dataManager导致的,他有个批量提交的接口