gpt4 book ai didi

java - 有什么简单的方法可以持久化一个包含许多对其他实体对象的引用的对象?

转载 作者:行者123 更新时间:2023-11-29 05:46:51 24 4
gpt4 key购买 nike

在我的项目中,我使用 hibernate,并且有一个对象至少有 30 个对其他对象的引用,这些对象也是实体。

当然不可能只调用

session.save(myHeavyObj);

因为它会抛出“对象引用未保存的 transient 实例”。

我想持久化所有对象。是否有任何简单的方法来持久化一个包含许多对其他实体对象的引用的对象?

更新

@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)

最佳答案

您可以在关系注释上将 CascadeType 属性设置为 PERSISTALL。这将告诉 hibernate 什么 Action “级联”到其他实体。这看起来像

@Entity
public class MyEntity{
@OneToOne(cascade = CascadeType.PERSIST)
private MyOtherEntity otherEntity;
}

关于java - 有什么简单的方法可以持久化一个包含许多对其他实体对象的引用的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com