我们在项目中使用 Hibernate。我的问题是关于命名查询。有人可以指导我如何通过 Hibernate 处理命名查询。如果 Hibernate 被配置为使用 1 级缓存,它还会从缓存中返回命名查询的结果,还是总是访问数据库?
问问题
2352 次
1 回答
3
一级缓存是休眠会话。除非在极少数情况下使用无状态会话,否则默认情况下会有一级缓存。查询结果从不缓存在一级缓存中。我认为您的意思是“二级缓存”。
命名查询的处理方式与关于缓存的未命名查询完全相同。
查询可以缓存也可以不缓存。如果它们被缓存,则可以避免到数据库的往返。无论它们是否被缓存,如果它们返回二级缓存中的实体实例,查询将返回 ID,然后实体本身将从二级缓存中加载。
有关更多信息,请参阅Grails 应用程序中的 Hibernate 二级缓存和参考文档。
于 2012-02-28T14:55:29.100 回答