我是靠谱客的博主 乐观板栗,最近开发中收集的这篇文章主要介绍教你快速学会JPA中所有findBy语法规则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

快速学会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<String> userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;

NotIn:等价于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection<String> userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;

JPA findBy 语法总结

1、JPA同时查询两个属性

其中一个是embedded class的属性

findByIdageAndTime(int age, Date time)

2、表格汇总

3、Spring Data JPA框架在进行方法名解析时

会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、getBy,然后对剩下部分进行解析。

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<SysUser> findUsers(@Param("nickname") String nickname);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持靠谱客。

最后

以上就是乐观板栗为你收集整理的教你快速学会JPA中所有findBy语法规则的全部内容,希望文章能够帮你解决教你快速学会JPA中所有findBy语法规则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部