Spring Data JPA的方法命名规则

Spring Data JPA是个非常强大的ORM持久化解决方案,免去了mybatis或spring jdbcTemplate的开发人员编写脚本的无趣工作。

通过简单明了地约定好接口方法的规则,来自动生成相应的JPQL语句,映射成PO对象,能大幅节省开发人员的编码量。

接口方法的命名规则也很简单,明白And、Or、Is、Equal、Greater、StartingWith等英文单词的含义,就可以写接口方法了。

以下是从Spring Data JPA官方网站上的docs整理而来,网上其他有些文章写的有的是错的,

大于等于、小于等于应为:GreaterThanEqual、LessThanEqual,而不是GreaterThanEquals、LessThanEquals,如果带了s,会导致程序启动报错。

关键词SQL符号样例对应JPQL 语句片段
AndandfindByLastnameAndFirstname… where x.lastname = ?1 and x.firstname = ?2
OrorfindByLastnameOrFirstname… where x.lastname = ?1 or x.firstname = ?2
Is,Equals=findByFirstname,findByFirstnameIs,findByFirstnameEquals… where x.firstname = ?1
Betweenbetween xxx and xxxfindByStartDateBetween… where x.startDate between ?1 and ?2
LessThan<findByAgeLessThan… where x.age < ?1
LessThanEqual<=findByAgeLessThanEqual… where x.age <= ?1
GreaterThan>findByAgeGreaterThan… where x.age > ?1
GreaterThanEqual>=findByAgeGreaterThanEqual… where x.age >= ?1
After>findByStartDateAfter… where x.startDate > ?1
Before<findByStartDateBefore… where x.startDate < ?1
IsNullis nullfindByAgeIsNull… where x.age is null
IsNotNull,NotNullis not nullfindByAge(Is)NotNull… where x.age not null
LikelikefindByFirstnameLike… where x.firstname like ?1
NotLikenot likefindByFirstnameNotLike… where x.firstname not like ?1
StartingWithlike 'xxx%'findByFirstnameStartingWith… where x.firstname like ?1(parameter bound with appended %)
EndingWithlike 'xxx%'findByFirstnameEndingWith… where x.firstname like ?1(parameter bound with prepended %)
Containinglike '%xxx%'findByFirstnameContaining… where x.firstname like ?1(parameter bound wrapped in %)
OrderByorder byfindByAgeOrderByLastnameDesc… where x.age = ?1 order by x.lastname desc
Not<>findByLastnameNot… where x.lastname <> ?1
Inin()findByAgeIn(Collection<Age> ages)… where x.age in ?1
NotInnot in()findByAgeNotIn(Collection<Age> ages)… where x.age not in ?1
TRUE=truefindByActiveTrue()… where x.active = true
FALSE=falsefindByActiveFalse()… where x.active = false
IgnoreCaseupper(xxx)=upper(yyyy)findByFirstnameIgnoreCase… where UPPER(x.firstame) = UPPER(?1)

 

Spring Data JPA官方文档

https://docs.spring.io/spring-data/jpa/docs/2.0.9.RELEASE/reference/html/

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值