我正在尝试缓存一些仅在服务器关闭时才发生更改的实体。这是一个示例:
@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会被完全缓存,包括“ next”和“ previous”关系?
如果有一种方法可以使用JPA的@Cacheable做到这一点,我会更加希望。