jpa 自定方法名查询接口
时间: 2023-08-03 22:54:34 浏览: 114
在使用 JPA 进行数据库操作时,我们可以通过定义一些特定命名规则的方法名来生成查询语句,这些方法称为自定义方法名查询接口。在 Spring Data JPA 中,自定义方法名查询接口的命名规则如下:
1. 查询关键字
- And:与
- Or:或
- Between:在指定区间内
- LessThan:小于
- LessThanEqual:小于等于
- GreaterThan:大于
- GreaterThanEqual:大于等于
- IsNull:为空
- IsNotNull:不为空
- NotNull:不为空
- Like:模糊查询
- NotLike:不模糊查询
- StartingWith:以指定字符串开头
- EndingWith:以指定字符串结尾
- Containing:包含指定字符串
- NotContaining:不包含指定字符串
- In:在指定集合内
- NotIn:不在指定集合内
- True:为 true
- False:为 false
- OrderBy:排序
2. 属性表达式
属性表达式指的是实体类中的属性名,可以直接在方法名中使用。例如,我们有一个名为 User 的实体类,其中包含属性 username、age、gender 等,我们可以在方法名中使用这些属性名进行查询。
3. 限定词
限定词包括以下几种:
- Distinct:去重
- Top、First:查询指定数量的结果
- All:查询所有结果
- By:按照指定字段分组
- IgnoreCase:忽略大小写
通过组合使用查询关键字、属性表达式和限定词,我们可以生成各种复杂的查询语句。例如,以下是一些常见的自定义方法名查询接口:
- findByUsername:根据用户名查询用户信息
- findByUsernameAndAgeLessThanEqual:根据用户名和年龄查询用户信息,年龄小于等于指定值
- findByGenderOrderByAgeDesc:根据性别查询用户信息,并按照年龄降序排序
- findDistinctByUsernameStartingWith:查询以指定字符串开头的用户名,并去重
- findTop5ByUsernameContainingOrderByAgeAsc:查询用户名包含指定字符串的前 5 个用户信息,并按照年龄升序排序
当然,以上只是一部分示例,实际使用时还可以根据需求自定义更多方法。
阅读全文