网站app生成器下载,办公软件,网站建设做网站好吗,一个完整的策划案范文查询方法的创建
内部基础架构中有个根据方法名的查询生成器机制#xff0c;对于在存储库的实体上构建约束查询很有用#xff0c;该机制方法的前缀 find…By、read…By、query…By、count…By 和 get…By 从所述方法和开始分析它的其余部分#xff08;实体里面的字段#x…查询方法的创建
内部基础架构中有个根据方法名的查询生成器机制对于在存储库的实体上构建约束查询很有用该机制方法的前缀 find…By、read…By、query…By、count…By 和 get…By 从所述方法和开始分析它的其余部分实体里面的字段。
感兴趣的读者可以到类 org.springframework.data.repository.query.parser.PartTree 查看相关源码的逻辑和处理方法关键源码如下 引入子句可以包含其他表达式例如在 Distinct 要创建的查询上设置不同的标志然而第一个 By 作为分隔符来指示实际标准的开始在一个非常基本的水平可以定义实体性条件并与它们串联 And 和 Or。
一句话概况带查询功能的方法名有查询策略关键字 查询字段 一些限制性条件组成。 看例子如下可以直接 Controller 里面进行调用看看效果
interface PersonRepository extends RepositoryUser, Long {// and的查询关系ListUser findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);// 包含distinct去重or的sql语法ListUser findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);ListUser findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname);// 根据lastname字段查询忽略大小写ListUser findByLastnameIgnoreCase(String lastname);// 根据lastname和firstname查询equal并且忽略大小写ListUser findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname); // 对查询结果根据lastname排序ListUser findByLastnameOrderByFirstnameAsc(String lastname);ListUser findByLastnameOrderByFirstnameDesc(String lastname);
}
解析方法的实际结果取决于创建查询的持久性存储。但是有一些一般的事情要注意
表达式通常是可以连接运算符的属性遍历可以使用组合属性表达式 And 和 or还可以得到这样的运算关键字为支撑 Between、LessThan、GreaterThan、Like 为属性表达式受支持的操作员可能因数据存储而异需要注意一下。该方法解析器支持设置一个 IgnoreCase 标志个别特性例如findByLastnameIgnoreCase(…)或对于支持忽略大小写通常是一个类型的所有属性 String 情况下如 findByLastnameAndFirstnameAllIgnoreCase(…)是否支持忽略案例可能会因存储而异需要了解特定于场景的查询方法。还可以通过 OrderBy 在引用属性和提供排序方向Asc 或 Desc的查询方法中附加一个子句来应用静态排序要创建支持动态排序的查询方法来影响查询结果。