【发布时间】:2016-05-14 12:00:57
【问题描述】:
我的数据库中存储了几个对象,这些对象经常由我的应用程序加载。我正在考虑缓存这些对象以获得更好的性能。
Hibernate Cache 的问题是你不能告诉它缓存特定的对象,所以它会缓存指定实体的每个实例。
我尝试将对象保存在自己的缓存数据结构中,但问题是缓存的对象可能与其他对象有关系,因此对象需要丢弃/重新加载缓存条目。
任何人都可以提出任何替代方案吗?
【问题讨论】:
我的数据库中存储了几个对象,这些对象经常由我的应用程序加载。我正在考虑缓存这些对象以获得更好的性能。
Hibernate Cache 的问题是你不能告诉它缓存特定的对象,所以它会缓存指定实体的每个实例。
我尝试将对象保存在自己的缓存数据结构中,但问题是缓存的对象可能与其他对象有关系,因此对象需要丢弃/重新加载缓存条目。
任何人都可以提出任何替代方案吗?
【问题讨论】:
您可以通过使用 Hibernate 中的查询缓存来实现您的用例。
请看下面的示例代码:
Query query = session.createQuery("from Employee e where e.id=1");
query.setCacheable(true);
List list = query.list()
query = session.createQuery("from Employee e where e.id=1");
query.setCacheable(true);
List list = query.list();
请看下面的官方文档:
https://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch20.html#performance-querycache-enable
【讨论】: