在我的项目中,我使用休眠,并且有一个对象至少有 30 个对其他对象的引用,这些对象也是实体。
当然不能只打电话
session.save(myHeavyObj);
因为它会抛出“对象引用一个未保存的瞬态实例”。
我想保留所有对象。有什么简单的方法可以持久化一个对象,该对象包含对其他实体对象的许多引用?
更新
@Entity
class MyClass{
//basic elements
@ElementCollection
@OneToMany(cascade=CascadeType.ALL) //some don't have this line
@LazyCollection(LazyCollectionOption.FALSE)
List<Medication> allMeds = new ArrayList<Medication>(); //Medication is Entity
//and more lists like this.
}
解决方案
它通过添加
@OneToMany(cascade=CascadeType.ALL)