在JPA中使多对多关系可缓存

Sag*_*gar 6 hibernate jpa

User和之间有多对多的关系Role.第三个表称为UserRole映射为连接表.

在JPA中,我可以缓存UserRole使用@Cachable; 但是当我尝试获取与定义Role的关联的s时,将执行数据库查询以从连接表中获取值.UserEAGER

如何在User和之间缓存连接表Role

You*_*ess 1

根据此处决定您的缓存并发策略,并在关联之上使用 @Cache:

    @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "user_roles")
Run Code Online (Sandbox Code Playgroud)

确保也使用 @Cacheable 标记两个实体(在本例中为用户和角色)。