【发布时间】:2014-09-10 11:56:49
【问题描述】:
我有一个 Java 应用程序,它使用 Spring Data(使用 JPA 和 Hibernate)通过服务和存储库层与数据库进行交互。大部分工作正常,但我在测试组合对象的保存调用时遇到问题:
涉及三个对象:
- 我从数据库中获取的对象 A
- 对象 B 我在测试中创建了一个新实例
- 对象 C 我想保存到与对象 A 具有多对一关系并且与对象 B 具有一对一关系的数据库(以及附加到它的两个实例)
(级联设置为合并和持久化)
现在,当尝试使用对象 C 的服务来保存它时,我得到一个分离实体异常。将@Transactional 放在测试方法之上时,我无法检查数据库的状态,因为事务仍处于打开状态。 (使用 @Transactional 将对象的检索和创建 + 保存调用放在单独的方法中根本没有做任何事情。试图抓住实体管理器并刷新它也无济于事。)
我确信这可能是一个常见问题(或者只是我的误解),但我还没有找到任何解决方案,希望得到任何建议。
正在使用的版本:
- 春季 4.0.5
- JPA 2.1
- 休眠 4.3.5
【问题讨论】:
标签: java spring hibernate jpa spring-data