缓存其他实体映射的关系

时间:2020-10-09 20:45:17

标签: java hibernate jpa hibernate-cache

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

@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做到这一点,我会更加希望。

0 个答案:

没有答案