方法的查询策略设置
通过下面的命令来配置方法的查询策略:
@EnableJpaRepositories(queryLookupStrategy= QueryLookupStrategy.Key.CREATE_IF_NOT_FOUND)
其中,QueryLookupStrategy.Key 的值一共就三个:
- Create:直接根据方法名进行创建,规则是根据方法名称的构造进行尝试,一般的方法是从方法名中删除给定的一组已知前缀,并解析该方法的其余部分。如果方法名不符合规则,启动的时候会报异常。
- USE_DECLARED_QUERY:声明方式创建,即本书说的注解的方式。启动的时候会尝试找到一个声明的查询,如果没有找到将抛出一个异常,查询可以由某处注释或其他方法声明。
- CREATE_IF_NOT_FOUND:这个是默认的,以上两种方式的结合版。先用声明方式进行查找,如果没有找到与方法相匹配的查询,那用 Create 的方法名创建规则创建一个查询。
除非有特殊需求,一般直接用默认的,不用管。以 Spring Boot 项目为例,更改其配置方法如下:
@EnableJpaRepositories(queryLookupStrategy= QueryLookupStrategy.Key.CREATE_IF_NOT_FOUND)
public class Example1Application {public static void main(String[] args) {SpringApplication.run(Example1Application.class, args);}
}
QueryLookupStrategy 是策略的定义接口,JpaQueryLookupStrategy 是具体策略的实现类,类图如下: