Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 启用查询缓存_Hibernate_Caching - Fatal编程技术网

Hibernate 启用查询缓存

Hibernate 启用查询缓存,hibernate,caching,Hibernate,Caching,我需要帮助在hibernate框架中缓存查询。我已经设置了以下属性,缓存l2正在我的项目中工作 <property name="hibernate.cache.use_second_level_cache" value="true"/> <property name="hibernate.cache.use_query_cache" value="true"/> 接口 @Repository @RepositoryRestResource(exported = fals

我需要帮助在hibernate框架中缓存查询。我已经设置了以下属性,缓存l2正在我的项目中工作

<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
接口

@Repository
@RepositoryRestResource(exported = false)
public interface MyClassRepository extends JpaRepository<Category, Long> {
(...)
@Cacheable("getOnlyNames")
@Query("select m.name from MyClass m")
List<String> getOnlyNames(); 
@存储库
@RepositoryRestResource(导出=false)
公共接口MyClassRepository扩展了JpaRepository{
(...)
@可缓存(“getOnlyNames”)
@查询(“从MyClass m中选择m.name”)
列出getOnlyNames();
}

根据,如果您试图缓存查询结果而不是对象,则语法如下:

entityManager.createQuery("select f from Foo f")
  .setHint("org.hibernate.cacheable", true)
  .getResultList();
只要您配置了hibernate查询缓存(您这样做了),这就应该可以工作

entityManager.createQuery("select f from Foo f")
  .setHint("org.hibernate.cacheable", true)
  .getResultList();