我使用Spring Boot 1.4.1和spring-boot-starter-data-jpa
当查询我的自定义方法时,比如'find byname(String name)',它不是缓存。
spring.jpa.properties.hibernate.cache.use_query_cache=true
@Repository
public interface AuthorRepository extends CrudRepository<Author, Integer> {
Author findByName(String name);
}
public class RepositoryTests {
@Autowired
private AuthorRepository authorRepository;
@Test
@Transactional
public void test() {
authorRepository.save(new Author("admin"));
// ***Not work. query **5** times.
Author author = authorRepository.findByName("admin");
author = authorRepository.findByName("admin");
author = authorRepository.findByName("admin");
author = authorRepository.findByName("admin");
author = authorRepository.findByName("admin");
// ***It's work. query **1** times.
Author author = authorRepository.findOne(1);
author = authorRepository.findOne(1);
author = authorRepository.findOne(1);
author = authorRepository.findOne(1);
author = authorRepository.findOne(1);
}
}
@Repository
public interface AuthorRepository extends CrudRepository<Author, Integer> {
@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") })
Author findByName(String name);
}
应该能做到这一点。(注意:不需要@repository
,因为您已经扩展了CrudRepository)
问题内容: 我正在尝试但未能成功在具有以下 依赖项的* Spring Data 和 Hibernate environmet中缓存查询: * 我的实体服务的Spring Data Repository(ServiceRepository)是 从中调用存储库的@Cacheable方法 我的缓存配置文件(jpa-context.xml)是 它的灵感来自spring-data-jpa-examples
它的灵感来自spring-data-jpa-examples/src/main/resources/caching-repository-context.xml 看日志;每次请求时,我都会看到查询被执行。 下次我请求时,我看到以下查询;
给出了一个带有express的nodejs应用程序,它通过nginx运行。我正在尝试使用ETag添加缓存支持。 如果没有nginx,如果应用程序被直接调用它的工作。我设置了如果无匹配头,并收到一个304。 对于nginx,响应总是200。 我的Nginx配置: 快车的日志记录。 信息:HTTP GET/app/statusCode=200,url=/app/,connection=upgrade,
你能帮我解决这个问题吗?我想使用此方法在我的数据库中查找特定的缺口(它是由Apache Derby制作的)。我使用了EntityManager并从NetBeans中的数据库中映射持久性-实体类。 我得到这个错误: Java . lang . illegalargumentexception:在EntityManager中创建查询时出现异常:< br >异常描述:解析[SELECT * FROM U
嗨,我在执行方法时遇到清理缓存的问题。这是我的配置和缓存方法: 我要缓存的这个方法: 在执行此方法时,我希望按类型清理缓存: 新闻消息对象看起来像: 缓存工作正常,第一次查询DB时,第二次从缓存中提取数据。问题是当我更新数据时,@CacheEvict不会清理缓存。我试图使用以下注释清理所有缓存:@cacheexit(cacheNames={CacheConfiguration.RSS\u NEWS
问题内容: 我正在使用JPA在基于Java EE的Web应用程序中加载和保留实体。Hibernate用作JPA的实现,但是我不使用特定于Hibernate的功能,而只能使用纯JPA。 这是一些DAO类的notice 方法: 方法很简单,但是有很大的缺点。每次调用该方法时,都会在JPA实现中的某处执行以下操作: JPQL表达式被解析并编译为SQL。 Statement或PreparedStateme