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

标签 hibernate jpa

我在 User 之间存在多对多关系和 Role .还有第三个表叫 UserRole映射为连接表。

在 JPA 中,我可以缓存 UserRole使用 @Cachable ;但是,当我尝试获取 Role 时s 关联到 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/

相关文章:

multithreading - 使用 Hibernate SessionFactory 的多线程问题

java - 如何使用JPA(EclipseLink)设置应用程序名称?

java - 如何管理具有复合 id 的实体中的枚举集合?

java - hibernate validator 注释不起作用

java - FETCH JOIN 最大深度?

java.lang.ClassNotFoundException : org. springframework.cglib.core.CodeGenerationException

java - 识别由于网络问题导致的 SQLException

java - 带有 "IN"表达式的 JPA @namedQuery

java - 当在复合键中使用时,JPA AttributeConverter 在 Spring-data/hibernate 查询中不被接受

java - 给定 id 的多个实体的高效缓存感知获取