返回顶部
首页 > 资讯 > 后端开发 > Python >教你快速学会JPA中所有findBy语法规则
  • 431
分享到

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

2024-04-02 19:04:59 431人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录快速学会JPA中所有findBy语法规则1、findBy findAllBy的区别2、JPA中支持的关键词JPA findBy 语法总结1、JPA同时查询两个属性2、表格汇总3、

快速学会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);

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

--结束END--

本文标题: 教你快速学会JPA中所有findBy语法规则

本文链接: https://lsjlt.com/news/157856.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 教你快速学会JPA中所有findBy语法规则
    目录快速学会JPA中所有findBy语法规则1、findBy findAllBy的区别2、JPA中支持的关键词JPA findBy 语法总结1、JPA同时查询两个属性2、表格汇总3、...
    99+
    2024-04-02
  • JPA中findBy语法规则有哪些
    小编给大家分享一下JPA中findBy语法规则有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JPA中所有findBy语法规则1、findBy findAll...
    99+
    2023-06-25
  • 三分钟让你快速学会axios在vue项目中的基本用法(推荐!)
    目录Axios简介一、axios是干啥的二、安装使用三、Axios请求方式1、axios可以请求的方法:2、get请求3、post请求4、put和patch请求5、delet ...
    99+
    2024-04-02
  • 如何在Python编程算法学习笔记中快速掌握所有数据类型?
    Python编程语言是一种非常流行的编程语言,其简单易学、功能强大的特点使其成为了数据科学、人工智能等领域中广泛使用的语言之一。在Python编程中,数据类型是非常重要的一部分,因为它们决定了你可以对数据做哪些操作。在本篇文章中,我们将介绍...
    99+
    2023-07-10
    编程算法 学习笔记 数据类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作