基本上,我有一个 JMS 队列和一个 MDB 来从 JMS 队列中收集消息,对它们进行一些处理,然后通过 JPA 将消息持久化到数据库中。我标记了负责将消息持久化到 DB 中的方法,以便在新事务中启动:
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void create(T entity)
{
try
{
getEntityManager().persist(entity);
}
catch(Exception e)
{
throw new RuntimeException("DB Exception");
}
}
如果事务回滚,是否会自动退出,直到事务完成?如果没有,如何启用它?