纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

JPA中findBy语法规则 教你快速学会JPA中所有findBy语法规则

zhw0596   2021-11-20 我要评论
想了解教你快速学会JPA中所有findBy语法规则的相关内容吗zhw0596在本文为您仔细讲解JPA中findBy语法规则的相关知识和一些Code实例欢迎阅读和指正我们先划重点:JPA,findBy,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);

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


相关文章

猜您喜欢

  • C语言 2048游戏 用C语言完整实现2048游戏

    想了解用C语言完整实现2048游戏的相关内容吗愿百事可乐在本文为您仔细讲解C语言 2048游戏的相关知识和一些Code实例欢迎阅读和指正我们先划重点:C语言,2048游戏,C语言,游戏下面大家一起来学习吧..
  • 过滤器doFilter里chain.doFilter()函数 Java过滤器doFilter里chain.doFilter()函数的理解

    想了解Java过滤器doFilter里chain.doFilter()函数的理解的相关内容吗deep_blank在本文为您仔细讲解过滤器doFilter里chain.doFilter()函数的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Java过滤器,过滤器doFilter,chain.doFilter()函数下面大家一起来学习吧..

网友评论

Copyright 2020 www.fresh-weather.com 【世纪下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式