【发布时间】:2011-04-12 18:33:45
【问题描述】:
如何强制 EJB 在每个命令后不刷新所有内容,我想做一个事务。我读过这是以某种方式以声明方式完成的。但具体如何?
@Stateless
public class SomeBean{
@PersistenceContext
EntityManager em;
public void doSomeStuffAndThenFlushToTheDb(){
em.persist(entity);
// it's flushed by now, I don't want that
em.persist(somethingElse);
// now I want to flush both
em.flush();
}
}
【问题讨论】:
-
哪个数据库?如果您的数据库不支持事务(例如 mysql 中的 myisam),可能会出现奇怪的结果
-
如果要回滚当前事务,使用“@Resource SessionContext context”将SessionContext注入bean并调用context.setRollbackOnly()回滚。
标签: java jpa jakarta-ee persistence ejb-3.0