JPA:方法命名规则

我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得文章有点 feel ,那就点个赞再走哦。
在这里插入图片描述

一、注意:

  • 下面这些方法都是查询操作,方法命名中如果 find 看着可读性不强可以改成 get
  • 这些方法命名,可以让 JPA 底层自动帮我们生成 SQL ,适用于单表、非复杂 SQL 语句实现
  • 如果想要查询 SQL 语句,那么我们可以在日志打印中查看。记得在 YML 中开启日志记录
关键字方法命名sql where字句
AndfindByNameAndPwdwhere name = ? and pwd= ?
OrfindByNameOrSexwhere name = ? or sex =?
BetweenfindByIdBetweenwhere id between ? and ?
LessThanfindByIdLessThanwhere id <?
LessThanEqualfindByIdLessThanEqualwhere id <=?
GreaterThanfindByIdGreaterThanwhere id > ?
GreaterThanEqualfindByIdGreaterThanEqualwhere id >= ?
AfterfindByIdAfterwhere id > ?
Beforefind ByIdBeforewhere id < ?
IsNullfindByNameIsNullwhere name is null
IsNotNull,NotNullfindByNameIsNotNullwhere name is not null
NotNullfindByNameNotNullwhere name is not null
LikefindByNameLikewhere name like ?
NotLikefindByNameNotLikewhere name not like ?
StartingWithfindByNameStartingWithwhere name like ‘?%’
EndingWithfindByNameEndingWithwhere name like ‘%?’
ContainingfindByNameContainingwhere name like ‘%?%’
OrderByfindByIdOrderByAgeDescAndIdAscwhere id = ? order by age desc,id asc
NotfindByNameNotwhere name <> ?
InfindByNameInwhere name in (?)
NotInfindByIdNotInwhere id not in (?)
TruefindByDelStatusTruewhere delStatus = true
FalsefindByDelStatusFalsewhere delStatus = false
IgnoreCasefindByNameIgnoreCasewhere UPPER(name) = UPPER(?)

二、更多细节

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JPA定义了一套命名规则,通过在Repository接口中定义方法的名称,可以自动生成相应的查询。以下是一些常见的JPA方法命名规则及其用法示例: 1. 查询方法: - `findBy<属性名>`:根据属性名查询实体对象列表。 - `findBy<属性名>And<属性名>`:根据多个属性名查询实体对象列表,多个条件使用`And`进行连接。 - `findBy<属性名>In`:根据属性名和给定的值集合查询实体对象列表。 - `findAll`:查询所有实体对象列表。 示例: ```java List<User> findByName(String name); List<User> findByNameAndEmail(String name, String email); List<User> findByNameIn(List<String> names); List<User> findAll(); ``` 2. 分页和排序查询: - `findBy<属性名>`:根据属性名进行分页查询实体对象列表。 - `findBy<属性名>OrderBy<属性名>`:根据属性名进行排序查询实体对象列表。 - `findBy<属性名>OrderBy<属性名>Desc`:根据属性名进行倒序排序查询实体对象列表。 示例: ```java Page<User> findByName(String name, Pageable pageable); List<User> findByAgeOrderByLastName(int age); List<User> findByAgeOrderByLastNameDesc(int age); ``` 3. 统计查询: - `countBy<属性名>`:根据属性名统计满足条件的实体对象数量。 示例: ```java long countByEmail(String email); ``` 4. 删除方法: - `deleteBy<属性名>`:根据属性名删除满足条件的实体对象。 示例: ```java void deleteByEmail(String email); ``` 使用这些命名规则,可以在Repository接口中定义方法,无需编写SQL语句,JPA会根据方法名称自动生成相应的查询。但是需要注意的是,命名规则方法有一定的局限性,复杂的查询可能无法满足,此时可以使用@Query注解来编写自定义的查询语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值