我正在尝试缓存一些仅在服务器关闭时才会更改的实体。这是一个例子:
@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 做到这一点,我会更喜欢。