【发布时间】:2017-07-27 18:23:15
【问题描述】:
我目前正在使用具有 Hibernate 实现的 JPA 实体,我想知道是否有办法在同一类的所有实体之间共享某个查询结果?
我想要的是在实体中实现一个简单的 Transient 方法,它检查当前实体的某些属性是否在存储在数据库中另一个表中的值列表中,但我不希望每个实体都执行这个额外查询以获取值列表。
有没有办法存储这个缓存的查询结果并在特定实体中访问它?
例如:
个人实体:
private Long id;
private String name;
...
@Transient
public boolean isIdBanned(){
(check against the cached list)
}
在这里,我想使用缓存的查询结果检查 Person 的 id 是否在禁止的 ids 列表中。
【问题讨论】:
-
是否可以安全地假设此缓存列表是您的应用程序在应用程序全局静态注册表中保存的东西,或者它是否可能是 Web 拦截器加载一次并且您为此重用缓存列表的东西特殊要求?
-
@Naros 现在列表存储在配置数据库表中。
标签: java hibernate jpa caching entity