我有以下课程

@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中找到更详细的解释

08-07 05:02