Hibernate 2级缓存:在oneToMany关系中创建实体时更新缓存的集合

我有以下课程

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

lbanzg99 回答:Hibernate 2级缓存:在oneToMany关系中创建实体时更新缓存的集合

当您有双向关系时,我认为通常建议同时更新两端。对于您的情况,在创建AnotherClass的实例并将其链接到SomeClass的实例时,还应该将AnotherClass添加到相应的anotherObjects列表中。

您将在this question

中找到更详细的说明。
本文链接:https://www.f2er.com/3146258.html

大家都在问