回退不适用于有孩子的实体(JPA)

时间:2014-03-10 23:54:00

标签: java hibernate jpa transactions jta

我有下一个应用程序配置:Karaf 2.3.1; Hibernate jpa-2.0 1.0.1.Final; Hibernate - 4.2.7.Final; Postgress 9.2。

我有一个经证实的案例,当事务被回滚后,DB中的更改不会被删除。

案例非常具体,回滚适用于此环境中的所有其他案例。

有问题的案例是:

映射的实体:A将B作为子级。 B有C作为孩子;

  • 新实体A及其新生儿B及其新生儿C已准备好;
  • 新实体由一个getEntityManager()。persist(A)命令持久化。在此期间,将填充3个相关表格。
  • 在此DB操作之后但在同一容器的范围内,托管事务代码抛出异常。
  • 最近3个创建的记录在DB中。但这是错误的!

根据日志事务是滚动支持

| Clearing up EntityManager org.apache.aries.jpa.container.impl.EntityManagerWrapper@5c660d79 as the transaction has completed.
| Closing session
| Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@7860eaa7]
| HHH000420: Closing un-released batch
| Closing logical connection
| Logical connection closed
| JTA sync : afterCompletion(4)
| Transaction afterCompletion callback [status=4]
| Session was closed; nothing to do
| after transaction completion
| Aggressively releasing JDBC connection
| after transaction completion

欢迎任何想法或建议。

提前致谢。

0 个答案:

没有答案