我正在尝试持久化一个简单的实体,但它不会在没有任何错误的情况下持久化到数据库中。我正在使用 glassfish 3.1.2、hibernate 4.1.3.Final、事务范围/容器管理的 entitymanager。jta 事务在 persistence.xml 中配置,并且 jta 数据源设置正确。它是一个具有默认事务级别(必需)的无状态会话 bean。在控制台中,我多次看到来自 Hibernate 的 TransactionCoordinatorImp 的“由于自动加入检查而跳过 JTA 同步注册”消息。我可以使用 entitymanager.find 找到手动插入的实体。但无法持久化或合并。关于可能是什么问题的任何想法?
更新:似乎问题与“由于自动加入检查而跳过 JTA 同步注册”消息无关。如果我将事务隔离级别设置为 REQUIRES_NEW,则会添加新实体,但如果我将隔离级别设置为 REQUIRED,则不会持久化。此方法是第一个接收 jax-rs Web 服务调用的方法。为什么我需要 REQUIRES_NEW 隔离级别?