0

我正在尝试缓存一些仅在服务器关闭时才会更改的实体。这是一个例子:

@Entity
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
public class Season {

    @Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
    @OneToOne(cascade=CascadeType.PERSIST, fetch=FetchType.EAGER)
    @JoinColumn(name="next_id")
    protected Season next;

}

这很好用。

但是当我添加反向关系时,我看到休眠查询该关系的数据库。

@Entity
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
public class Season {

    @Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
    @OneToOne(cascade=CascadeType.PERSIST, fetch=FetchType.EAGER)
    @JoinColumn(name="next_id")
    protected Season next;

    @Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
    @OneToOne(mappedBy="next", fetch=FetchType.EAGER)
    protected Season previous;
}

如果我将其声明为 EAGER 或 LAZY,则没有区别。

如何配置我的 Cache / Entity / Relations ,以便完全缓存 Season Entity 包括“下一个”和“上一个”关系?

如果有办法使用 JPA 的 @Cacheable 做到这一点,我会更喜欢。

4

0 回答 0