app开发者平台在数字化时代的重要性与发展趋势解析
3494
2022-11-21
教你快速学会JPA中所有findBy语法规则
目录快速学会JPA中所有findBy语法规则1、findBy findAllBy的区别2、JPA中支持的关键词JPA findBy 语法总结1、JPA同时查询两个属性2、表格汇总3、Spring Data JPA框架在进行方法名解析时4、JPA的NamedQueries5、JPQL查询
快速学会JPA中所有findBy语法规则
1、findBy findAllBy的区别
它们之间没有区别,它们将执行完全相同的查询,当从方法名称派生查询时,Spring Data会忽略All部分。唯一重要的一点是By关键字,其后面的任何内容都被视为字段名称
如 findXXXXXXXXXXXXXByName 实际上==》 findByName
2、JPA中支持的关键词
And:等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);
Or:等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr);
Between:等价于 SQL 中的 between 关键字,比如 findBySalaryBetween(int max, int min);
LessThan:等价于 SQL 中的 "<",比如 findBySalaryLessThan(int max);
GreaterThan:等价于 SQL 中的">",比如 findBySalaryGreaterThan(int min);
IsNull:等价于 SQL 中的 "is null",比如 findByUsernameIsNull();
IsNotNull:等价于 SQL 中的 "is not null",比如 findByUsernameIsNotNull();
NotNull:与 IsNotNull 等价;
Like:等价于 SQL 中的 "like",比如 findByUsernameLike(String user);但是有一点需要注意的是,%需要我们自己来写
NotLike:等价于 SQL 中的 "not like",比如 findByUsernameNotLike(String user);
OrderBy:等价于 SQL 中的 "order by",比如 findByUsernameOrderBySalaryAsc(String user);
Not:等价于 SQL 中的 "! =",比如 findByUsernameNot(String user);
In:等价于 SQL 中的 "in",比如 findByUsernameIn(Collection
NotIn:等价于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection
JPA findBy 语法总结
1、JPA同时查询两个属性
其中一个是embedded class的属性
findByIdageAndTime(int age, Date time)
2、表格汇总
3、Spring Data JPA框架在进行方法名解析时
会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、gehttp://tBy,然后对剩下部分进行解析。
4、JPA的NamedQueries
在实体类上使用@NamedQuery,示例如下:
@NamedQuery(name = "UserModel.findByAge",query = "select o from UserModel o where o.age >= ?1")
在自己实现的DAO的Repository接口里面定义一个同名的方法,示例如下:
public List findByAge(int age);
然后就可以使用了,Spring会先找是否有同名的NamedQuery,如果有,那么就不会按照接口定义的方法来解析。
5、JPQL查询
@Query("from SysUser u where u.nickname=:nickname")
SysUser findUser(@Param("nickname") String nickname);
@Query("from SysUser u where u.nickname like %:nickname% order by u.fans desc")
List
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~