如何在默认的Spring Data JPA方法中添加QueryHints?

13

我可以像以下这样在Spring Data JPA中使用查询缓存来处理自定义的查询方法。

public interface CountryRepository extends JpaRepository<Country, String> {
@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") })
Country findByCountryName(String countryName);
@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") })
Country findByCountryCode(String countryCode); }

然而,如何在现有的父方法(例如findAll())上添加@QueryHints?

谢谢。


@oliver-gierke,你有任何想法如何实现这个吗? - Lee Chee Kiam
我有同样的问题。我尝试覆盖它们并添加@QueryHint注释,但它们被忽略了。 - Agustí Sánchez
@user791694,请查看下面链接中sgp15的答案 https://dev59.com/9mox5IYBdhLWcg3wLhei#10876707 - Lee Chee Kiam
2个回答

6

findAll()、findOne()等方法并不是查询。这些方法将对实体上的任何缓存规格生效。

例如:

@Cacheable
@Entity
public class User {

}

我有这些设置,对于findAll它会去数据库。我需要打开什么吗? - Piotr Gwiazda
@Cacheable看起来对findAll()没有影响。我的理解是findOne()与“Level 2缓存”相关联,而findAll()与“Query Cache”相关联。为了缓存findAll(),我重写了该方法并添加了@queryhints。 - Y.M.

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接