Asa*_*Asa 5 java hibernate jpa-2.0
我正在使用JPA 2和Hibernate 3.6.8作为实现.
假设我们有一个实体 Foo
@Entity
public class Foo {
....
@OneToOne
private Bar bar;
....
}
Run Code Online (Sandbox Code Playgroud)
我需要从会话中分离整个实体图,当我这样做时entityManager.detach(foo),我感到惊讶的是bar仍然依附,IMO非常直观.
阅读文档EntityManager,似乎这是预期的情况,因为它没有提及关于协会/儿童的任何事情:
从持久性上下文中删除给定实体,导致托管实体脱离.对实体进行的未刷新更改(如果有)(包括删除实体)将不会同步到数据库.先前引用分离实体的实体将继续引用它.
我也可以简单地调用entityManager.detach(foo.getBar()),但这意味着如果我稍后添加任何关联,我将必须确保它们也是手动分离的.
有没有方便的方法来实现这一点,而不诉诸反思?
添加DETACH类型的级联:
@OneToOne(cascade = CascadeType.DETACH)
private Bar bar;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |