JPA自定义SQL查询

这篇具有很好参考价值的文章主要介绍了JPA自定义SQL查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JPA自定义SQL查询

关于自定义SQL查询,方法名可以随意取(遵循驼峰命名法,方法名需能一眼看出此方法的用处),不需要遵循JPA制订的规则来起方法名。

自定义SQL 是指:在方法上使用 @Query 注解,然后写sql。
@Query注解中有两个常用的属性,value(定义sql),nativeQuery (true表示数据的sql,false表示HQL,默认值是false) 。当 @Query注解中设置 nativeQuery = true 时即可以使用原生SQL进行查询,sql里面的表名和字段都是使用的数据库里面的(带有下划线),当@Query注解中设置 nativeQuery = false时,sql里面表名和字段都是使用定义实体类的变量名(驼峰命名)。

注意:HQL不支持limit语法,一般来说建议采用 nativeQuery=true,可以实现稍微复杂的一些连表查询。

  1. 单条件查询
    JPA自定义SQL查询

  2. 多条件查询
    JPA自定义SQL查询

  3. 复杂多条件查询
    JPA自定义SQL查询

  4. 根据client_Key修改数据
    JPA自定义SQL查询

在**@Query注解中,编写 JPQL 实现 DELETEUPDATE** 操作时必须加上**@Modifying** 注解,以通知Spring Data 这是一个DELETE和UPDATE操作。DELETE和UPDATE操作需要使用事务,此时需要定义Service 层,在Service 层的方法上添加事务操作。

@Modifying 注解中有两个属性:flushAutomaticallyclearAutomatically,从字面理解是自动刷新和自动清除。
自动刷新,即执行完语句后立即将变化内容刷新到磁盘。
自动清除,即执行完语句后自动清除掉已经过期的实体,比如,我们删除了一个实体,但是还没有执行flush操作时,这个实体还存在于实体管理器EntityManager中,但这个实体已经过期没有任何用处了,知道flush操作时才会被删掉。如果希望在删除实体时立刻将该实体从实体管理器中删除,则可将属性设置为true。
JPA自定义SQL查询

  1. 模糊查询
    JPA自定义SQL查询

  2. 分页查询

JPA在查询方法中传入参数Pageable 对象来实现分页功能,通过该参数可得到和分页相关的所有信息。有多个参数时,Pageable 作为最后一个参数。
Pageable对象创建的方法:
Page:第几页,从0开始,默认为第0页
size:每一页的大小,默认为20
sort:排序方式;
JPA自定义SQL查询

接口调用:
JPA自定义SQL查询
Page对象相关方法
JPA自定义SQL查询文章来源地址https://www.toymoban.com/news/detail-433293.html

到了这里,关于JPA自定义SQL查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Django-05 ]自定义sql查询

    这样后续的操作都会在这个数据库中 这里在一些多表关联的时候是特别特别有用的,也是实际开发中不可避免的知识点 with 写法 普通写法

    2024年02月04日
    浏览(42)
  • VBA-自定义面板,使用SQL查询Excel数据

    定制插件,实现用户打开任意一个工作簿,写sql对Excel中的数据进行查询 需求 筛选日期小于’2023-4-24’,按group字段分组,求和各分组下的销售额,返回结果集新建工作表写入 数据源 现在有两个表, 一个用户的销售金额表,记录用户不同日期的销售金额,其中date字段是日期

    2024年02月01日
    浏览(29)
  • Mybatis-plus 配置自定义sql(.xml文件)查询语句的步骤

    这是使用Mybatis-plus 的自动生成实体类代码生成.xml文件, 所以他会在java目录下,不在resources目录下 如果在java目录下的xml文件,需要分别配置application.yml和pom.xml文件 type-aliases-package:java目录下边的第一级包名 mapper-locations: classpath:映射器的地址: 类路径:也就是.xml所在的包名

    2024年02月16日
    浏览(57)
  • mysql 自定义函数,返回值为sql查询后的某个字段的值

    函数框架:如果使用的是 Navicat 等可视化工具,通过点击界面填写相应的条件就可以得到函数框架 1、definer 翻译成中文是“定义者”的意思。MySQL中,创建视图(view)、函数(function)、存储过程(procedure)、触发器(trigger)、事件(event)时,都可以指定 DEFINER = user 选项,即指定此对象

    2024年01月18日
    浏览(43)
  • JPA查询PostgreSQL行排序问题

    我们项目使用 Spring Boot 构建,使用 JHipster 生成业务代码,包含基础的增删改查代码 使用 PostgreSQL 作为业务数据库,使用自动生成的 JPA 构建数据更新语查询 在查询某个实体类的列表时,没有指定排序字段,查询返回按照添加顺序倒序返回,这样也符合我们的需求 在修改了某

    2024年01月18日
    浏览(41)
  • Springboot 自定义 Mybatis拦截器,实现 动态查询条件SQL自动组装拼接(玩具)

    ps:最近在参与3100保卫战,战况很激烈,刚刚打完仗,来更新一下之前写了一半的博客。 该篇针对日常写查询的时候,那些动态条件sql 做个简单的封装,自动生成(抛砖引玉,搞个小玩具,不喜勿喷)。 来看看我们平时写那些查询,基本上都要写的一些动态sql:   一个字段

    2024年02月12日
    浏览(45)
  • JPA在事务结束时自动更新查询数据

    目录 现象 产生的原因 解决方法 最近解决了一个困惑几天的bug,数据库里的某一些记录莫名其妙的被刷新了,排查过代码跟应用日志,可以确定不是代码执行的更新。直到今天看到了一条日志,在事务提交时报错“Column \\\'user_name\\\' cannot be null”,在出错的事务中,针对这一个表

    2024年02月09日
    浏览(22)
  • 【数据库Microsoft SQL Server】实验一 数据库的定义与单表查询

    一、实验目的 1.要求学生熟悉掌握在DBMS中用SQL语言定义数据库、表、主码及外码。 2.熟悉关系数据库中常用数据类型,为关系表各属性定义合理的数据类型。 3.在建立好的数据库表中输入部分虚拟数据,实现基于单表的sql查询并分析查询结果。 二、实验环境与实验准备工作

    2024年02月05日
    浏览(59)
  • SQL Server查询优化方法

    SQL Server查询优化方法(查询速度慢的原因很多,常见如下几种) 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采

    2024年01月21日
    浏览(52)
  • JPA 如何修改 联表查询返回的Map

    记录解决两个问题: 解决方法: 不直接修改这个 Map。如果你需要对 Map 进行修改操作,你可以创建一个新的 Map,然后将原 Map 的内容复制到新 Map 中。  第二个问题就是如何创建一个空的PageMap 把数据拷贝进去了 参数描述:    创建新对象并赋值伪代码如下:

    2024年04月27日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包