我在User
和Role
之间有多对多关系。第三个表称为UserRole
映射为联接表。
在JPA中,我可以使用User
缓存Role
和@Cachable
;但是,当我尝试获取与Role
定义的User
相关联的EAGER
时,将执行数据库查询以从联接表中获取值。
如何在User
和Role
之间缓存联接表?
最佳答案
确定基于here的缓存并发策略,并在关联顶部使用@Cache:
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "user_roles")
确保也使用@Cacheable标记这两个实体(在本例中为用户和角色)。
关于hibernate - 使多对多关系可在JPA中缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21635734/