Skip to main content

Java JPA 方法命名规则

· 3 min read
Zeffon Wu

记录在 SpringBoot 项目使用 JPA 访问数据库数据时,Repository 持久层的方法命名规则

前言

Repository 持久层的方法通过方法的命名规则会自动创建出对应的 SQL 语句的,因此使用 JPA 作为数据访问层时,我们可以通过编写对应的方法来获取到数据库的数据,而不需要编写SQL语句,相比于 Mybatis,这样简化编码流程,提高了开发效率,但也是有局限性的。其无法应对太复杂的 SQL 语句,同时也会造成方法的命名太长而不优雅。但是编写简单的 SQL 时,的确非常有助于我们开发。

正文

关键字方法命名sql where 字句
AndfindByNameAndPwdwhere name= ? and pwd =?
OrfindByNameOrSexwhere name= ? or sex=?
Is,EqualsfindById,findByIdEqualswhere id= ?
BetweenfindByIdBetweenwhere id between ? and ?
LessThanfindByIdLessThanwhere id < ?
LessThanEqualsfindByIdLessThanEqualswhere id <= ?
GreaterThanfindByIdGreaterThanwhere id > ?
GreaterThanEqualsfindByIdGreaterThanEqualswhere id > = ?
AfterfindByIdAfterwhere id > ?
BeforefindByIdBeforewhere id < ?
IsNullfindByNameIsNullwhere name is null
isNotNull,NotNullfindByNameNotNullwhere name is not null
LikefindByNameLikewhere name like ?
NotLikefindByNameNotLikewhere name not like ?
StartingWithfindByNameStartingWithwhere name like '?%'
EndingWithfindByNameEndingWithwhere name like '%?'
ContainingfindByNameContainingwhere name like '%?%'
OrderByfindByIdOrderByXDescwhere id=? order by x desc
NotfindByNameNotwhere name <> ?)
InfindByIdIn(Collection<?> c)where id in (?)
NotInfindByNameNotwhere name <> ?)
TruefindByAaaTuewhere aaa = true
FalsefindByAaaFalsewhere aaa = false
IgnoreCasefindByNameIgnoreCasewhere UPPER(name)=UPPER(?)
topfindTop100top 10/where ROWNUM <=10