0
「findByName(文字列名)」のようなクエリ私のカスタムメソッドは、それがキャッシュではないとき、私は春のブート1.4.1と春・ブート・スターター・データ-JPA春JPA Hibernateのクエリキャッシュdoes't作業
を使用しています。
しかし、 'findOne(Interger id)'のようなデフォルトのメソッドをクエリすると、その作業が行われます。
application.properties:
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);
}
}
ありがとうございます。 – Alex