我有以下课程
@Entity(name = "table")
@Table(name = "table")
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class SomeClass {
@Id
long id;
@OneToMany(mappedBy = "someObject")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AnotherClass> anotherObjects;
}
还有另一类:
public class AnotherClass{
@Id
long id;
@ManyToOne
@JoinColumn(name = "some_coulmn")
SomeClass someObject;
}
这种情况是,当我从类型
AnotherClass
创建一个对象,并为其分配一个特定的someClass
对象,然后检索该someClass
对象时,我看不到新创建的对象(除非刷新刷新并重新启动)。每当有新实体添加到该关系时,我可以做些什么来更新表示两个实体之间关系的集合吗?
注意:我在Spring boot 2.1.8项目中使用了休眠5.3。
最佳答案
当您具有双向关系时,我认为通常建议更新两端。对于您的情况,在创建AnotherClass的实例并将其链接到SomeClass的实例时,还应该将AnotherClass添加到相应的anotherObjects列表中。
您可以在this question中找到更详细的解释