我有一个抽象实体及其子类
@Entity
@Inheritance(JOIN)
public abstract class Foo { /* ... */ }
@Entity
public class Bar extends Foo { /* ... */ }
@Entity
public class Baz extends Foo { /* ... */ }
以及包含Foo
s列表的类:
@Entity
public class Qux {
@OneToMany(cascade = ALL)
List<Foo> foos;
}
但是当我merge(qux)
我得到
org.hibernate.PersistentObjectException: detached entity passed to persist: Foo
这很奇怪,因为我有cascade = ALL
。所以我尝试将其更改为cascade = MERGE
,错误更改为
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance beforeQuery flushing: Foo
如何使这种关系有效? (我正在使用Hibernate 5.2.7)