springdata JPA@Query注解及@Modifying注解

Vue3+Vite+Electron桌面应用开发:从零到打包的完整避坑指南 本文是一份详尽的Vue3+Vite+Electron桌面应用开发实战指南。文章从项目初始化、环境配置、主进程构建、Vite深度优化,到最终的打包配置与优化,系统性地讲解了使用现代前端技术栈开发跨平台桌面应用的完整流程,并重点分享了开发与打包过程中的常见“坑点”与解决方案,旨在帮助开发者高效构建稳定可交付的桌面端应用。 阅读详情

@Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。

索引参数与命名参数
    1、索引参数如下所示,索引值从1开始,查询中"?X"个数需要与方法定义的参数个数相一致,并且顺序也要一致。

@Query("SELECT p FROM Person p WHERE p.lastName = ?1 AND p.email = ?2")
 List<Person> testQueryAnnotationParams1(String lastName, String email);

注释:上面代码中的?1,?2表示参数的占位符,需要和方法中所传递的参数顺序一致。X是从1开始。

2、命名参数(推荐使用此方式):可以定义好参数名,赋值时使用@Param(“参数名”),而不用管顺序。

1 // 为@Query注解传递参数的方式1:命名参数

@Query("SELECT p FROM Person p WHERE p.lastName = :lastName AND p.email = :email")
List<Person> testQueryAnnotationParams2(@Param("email") String email, @Param("lastName") String lastName);

注释:上面代码中:lastName ,:email 表示为参数命名,方法中所传递的参数使用@Param注解标识命名参数。这种方式不用管参数的顺序。

3、含有LIKE关键字的查询

方式1:可以在占位符上添加"%",这样在查询方法中就不用添加"%"

1 // like查询 Spring Date 允许在占位符上添加%

@Query("SELECT p FROM Person p WHERE p.lastName LIKE %?1% OR p.email LIKE %?2%")
List<Person> testQueryAnnotationLikeParam(String lastName, String email);
@Test
public void testAnnoationParams3() {
List<Person> persons = personRepsitory.testQueryAnnotationLikeParam("A", "A@126.com");
System.out.println(persons);
}

方式2:不在占位符上添加"%",这样就必须在查询方法的参数上添加"%"

1 // like查询

@Query("SELECT p FROM Person p WHERE p.lastName LIKE ?1 OR p.email LIKE ?2")
List<Person> testQueryAnnotationLikeParam2(String lastName, String email);
@Test
public void testAnnoationParams4() {
      List<Person> persons = personRepsitory.testQueryAnnotationLikeParam2("%A%", "%A@126.com%");
      System.out.println(persons);
}

方式3:在命名参数上添加"%"

// like查询 使用命名参数

 @Query("SELECT p FROM Person p WHERE p.lastName LIKE %:lastName% OR p.email LIKE %:email%")
 List<Person> testQueryAnnotationLikeParam3(@Param("email") String email, @Param("lastName") String lastName);

4、使用原生SQL进行查询

/**
 1. 设置nativeQuery=true 即可以使用原生的SQL进行查询
 2. @return
 */
@Query(value = "SELECT count(id) FROM jpa_persons", nativeQuery = true)
long getTotalCount();

注释:当设置nativeQuery=true即可以使用原生SQL进行查询

@Modifying注解

  1. 1、在@Query注解中编写JPQL实现DELETE和UPDATE操作的时候必须加上
    @modifying注解,以通知Spring Data 这是一个DELETE或UPDATE操作。

    2、UPDATE或者DELETE操作需要使用事务,此时需要 定义Service层,在Service层的方法上添加事务操作。

    3、注意JPQL不支持INSERT操作。

@Transactional
@Modifying
@Query("UPDATE Person p SET p.email = :email WHERE p.id = :id")
void updatePersonEmail(@Param("id") Integer id, @Param("email") String email);

原文链接 : https://www.cnblogs.com/zhaobingqing/p/6864223.html

逆向工程的艺术:如何绕过PDD的长连接机制实现高效抓包 本文深入解析了如何通过逆向工程技术绕过拼多多(PDD)的长连接机制实现高效抓包。详细介绍了动态调试方案、关键函数Hook技巧及流量解密重组方法,帮助开发者在非Root环境下捕获并解析PDD的加密数据。结合Python工具链,实现稳定数据采集,适用于电商数据分析和反爬策略研究。 阅读详情

相关推荐

数据库迁移策略实战:MySQL到PostgreSQL

数据库迁移是一项复杂且细致的任务,需要充分的准备工作、合适的迁移策略和严格的验证与优化步骤。通过选择合适的迁移工具、进行手动迁移和应用程序适配、以及迁移后的验证与优化,可以确保数据迁移的成功和业务的连续性。希望本文的分享能够为大家在MySQL到PostgreSQL的数据库迁移实战中提供一些有用的参考和启示。

shejizuopin的博客 1730

Jpa操作数据库之@Query使用SQL语句,nativeQuery=true写不写的区别

@Repository public interface CapitalFlowRepository extends JpaRepository<CapitalFlow, Long> { //@Query(value = "select * from capital_flow where sub_account=?1",nativeQuery = true) @Query(value ...

qq_16977687的博客 6723

PSI5协议技术文档与驱动开发指南

• 供电与数据复用:ECU通过双绞线为传感器提供稳压(典型值5V-11V),同时检测线路电流变化实现数据传输。• 同步信号:ECU发送3.5V电压脉冲(上升沿触发传感器响应),用于时序同步。• 安全气囊:PSI5-P模式实现多碰撞传感器同步采样(响应时间<10ms)• CRC-3(3位):ASIL-B以上功能安全要求(如动力总成传感器)• 奇偶校验(1位):适用于低安全等级场景(如PSI5-P10P模式)• 典型应用:PSI5-P(并行总线)、PSI5-U(通用总线)

u012733413的博客 2865

十、Spring Data JPA--(3)@Query和@Modifying注解

十、Spring Data JPA--(3)@Query和@Modifying注解

Need not to know 621

Gemini Enterprise免费试用攻略:解锁企业级AI平台的隐藏技巧与避坑指南

本文详细介绍了Gemini Enterprise免费试用的全流程攻略,包括注册优化、团队协作、资源管理和典型应用场景。通过解锁企业级AI平台的核心功能如Gemini 3.0 Pro模型和Nano Banana图像生成系统,帮助企业高效评估AI与业务的契合度。文章还提供了安全合规与数据管理的实用建议,确保试用过程顺畅无忧。

weixin_29233857的博客 657

从零开始掌握OBD-II:汽车诊断开发的核心技术与实战解析

本文深入解析OBD-II汽车诊断系统的核心技术,包括ECU通信协议、故障码解析及诊断工具开发实战。通过详细的协议分析和代码示例,帮助开发者快速掌握汽车诊断开发技能,实现从零到精通的进阶。特别适合从事汽车电子开发和OBD检测的技术人员参考学习。

weixin_42528780的博客 438

SpringDataJpa基础篇5:@Query与@Modifying注解使用

  1、@Query注解 1.1、@Query注解源码 @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE }) @QueryAnnotation @Documented public @interface Query { //定义一个JPQL语句 St...

u013089490的博客 1662

YOLO项目从零开始:超详细运行教程(图文保姆级教学)

至此,我们已经完整跑通了YOLO项目的安装与启动流程,无论你是零基础小白还是刚入门的AI新兵,只要按部就班操作,也能轻松实现目标检测项目的落地。

一键难忘的博客 4797

Jpa数据操作以及@Query和@Modifying注解使用

一、 Jpa接口自定义sql注解@Query @Query注解,使用注解有两种方式,一种是JPQL的SQL语言方式,一种是原生SQL的语言,略有区别,代码中具体区别是nativeQuery 属性是否为true,我们一般使用的都是原生SQL的语言,需要加nativeQuery = true 不带参数的sql @Query(value = "select count(1) code,hdt.type data from history_design_theme hdt where 1=1 GROUP

BadBoyxiaolin的博客 2988

C#函数返回多个值实现实例

本文实例讲解C#函数返回多个值多种实现方法。

qq_30725967的博客 1170

杰理SDK入门教程(六):自定义按键事件

这篇教程介绍了在杰理AC695N芯片上实现自定义按键功能的完整流程,包含三个核心步骤:首先在key_event_deal.h文件中添加按键枚举定义;然后在adkey_table.c配置按键映射表,按模式和行为类型设置按键值;最后在app_common.c的消息处理函数中添加自定义按键逻辑。教程强调需注意不同模式按键表的列定义差异,并提供了具体代码示例,最后指导完成编译测试验证。全文结构清晰,配有关键代码截图,适合开发者快速上手自定义按键功能开发。

qq_42014563的博客 1016

Spring Data JPA之Query注解与Modifying注解

Spring Data支持JPQL语句。 通过@Query注解可以轻松使用JPQL语句。 @Query("SELECT t FROM TestEntity t WHERE t.name LIKE %?1%") List&lt;TestEntity&gt; selectLikeName(@Param("name")String name); Spring Data JPA的JPQL支持占位...

u014268482的博客 2302

【已解决】飞牛nas(fnOS)异常断电导致硬盘未挂载(无法挂载),系统内部错误修复、救回数据全流程!(含更新系统后外接 NTFS 格式硬盘丢失的修复方法)

fnOS 飞牛NAS遭遇非正常断电后,存储空间显示「未挂载」或更新系统后外接 NTFS 格式硬盘丢失,点击挂载提示「系统内部错误」!💥 博主已经完美恢复,本文记录了相关的解决方案,帮您恢复或最大程度保住重要数据🎉

XiaoqiangClub的博客 2168

SpringData JPA@Query注解及@Modifying注解

@Query注解查询使用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。 索引参数与命名参数: 1、索引参数如下所示、索引值从1开始,查询中“?X”个数需要与方法定义的参数相一致,并且顺序也要一致。 1 @Query("SELECT p FROM Person p ...

薛云飞(Jesse Xue) 2407

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

第6章 Spring Boot的数据访问 一、Spring Data JPA(4、@Query和@Modifying注解)

学习目标: 一、Spring Data JPA 4、@Query和@Modifying注解 学习内容: 在上两节中的查询方法必须严格按照Spring Data JPA的查询关键字命名规范进行查询方法命名。如何摆脱查询关键字和关联查询命名规范约束呢?可以通过@Query、@NamedQuery直接定义JPQL语句进行数据的访问操作。 1.@Query注解 使用@Query注解可以将JPQL语句直接定义在数据访问接口方法上,并且接口方法名不受查询关键字和关联查询命名规范约束。示例代码如下: public in

weixin_43820675的博客 761

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JPA的@Query用法

文章目录@Query作用使用例子简单使用like表达式原生sql传参方式SPEL表达式nativeQuery 作用更新操作删除操作@query返回自定义字段@query返回自定义对象 @Query作用 @Query标记在继承了Repository的自定义接口方法上,就不需要遵循查询方法命名规则 public @interface Query { /** 定义被执行的sql或者hql */ String value() default ""; /** 分页时用于查询中数量的sql或者hql */

借物小人的博客 5万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

spring boot+jpa 使用@Query与@Modifying写自定义sql报事务异常

使用jpa @Query与@Modifying写自定义sql时经常报事务异常,解决方案如下://异常写法@Modifying// 正确写法@Modifying// 注意导入的包。

qq_31946081的博客 605

记录使用JPA中@Query注解传对象参数时候遇到的坑

1.传参数 首先是要使用JPA,然后自定义sql更新的情况下,如下图: 注意:使用时候加上 @Transactional @Modifying 在@Query里面接收参数时候用 [:参数名 ] 这种语法进行赋值 比如 传参数productName 这个时候需要 set product_name = :productName 2.传对象 这里需要注意了,可能比较多人会写错 传对象的话 语法是 :#{#对象名称.对象属性} 如下图 希望初学者注意加快开发速度 ...

qq_42951606的博客 7865

springbootjpa中@Modifying的用法

当使用Spring Data JPA进行数据库操作时,有时候我们需要执行一些更新或删除操作,而不仅仅是查询操作。注解为我们提供了一种方便的方式来标记需要修改数据库的查询方法,同时也提醒了我们在使用这些方法时需要注意一些细节。注解的话,Spring Data JPA默认认为查询方法是只读的,即不会修改数据库。注解能够明确告诉Spring Data JPA,这个方法需要修改数据库,从而确保操作的准确性和可靠性。注解一起使用,用于标记一个自定义的查询方法需要修改数据库。注解,以便更好地操作数据库。

weixin_44808225的博客 2634

Spring Data JPA使用@Query与@Modifying注解自定义修改和删除操作

JPQL是面向对象进行查询的语言,还可以通过自定义的JPQL完成UPDATE和DELETE操作。 JPQL操作注意事项: (1)JPQL不支持使用 INSERT 操作。 (2)UPDATE 或 DELETE 操作,必须使用@Query与@Modifying注解进行修饰。 (3)UPDATE 或 DELETE 操作需要使用事务,需要在定义的业务逻辑层(Service层),在方法上使用@Tra...

pan_junbiao的博客 6122

JPA @Modifying注解

这个注解是通知jpa,这是一个update或者delete操作,在更新或者删除操作时,此注解必须加,否则会抛出下面异常 org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for D...

徐海兴的专栏 1万+

Spring Data JPA 从入门到精通~@Modifying修改查询

学习思路一样,我们先看源码: public @interface Modifying { //如果配置了一级缓存,这个时候用clearAutomatically=true,就会刷新hibernate的一级缓存了, 不然你在同一接口中,更新一个对象,接着查询这个对象,那么你查出来的这个对象还是之前的没有更新之前的状态。这个比较适合老Hibernate的开发的程序员。 boolean clearAutomatically() default false; } 可以通过在 @Modifying 注解

小强快跑~~ 955

JPA @Modifying注解 jpql语句更新以及删除

JPA @Modifying注解解释 这个注解在JPA中经常出现,是为了通知jpa,这是一个update或者delete操作,在更新或者删除操作时,此注解必须加,否则就会抛出异常,注:jpa不支持insert语句 以下就是这个注解使用示例` /** * Created by w on 2018/12/24. */ @Repository public interface NoticeCusto...

wgxu123的博客 1426

Spring-data-jpa 的@modifying注解

在项目的进行中需要通过 @Modifying 注解完成修改操作(注意:不支持新增) 1.之前有一个业务需要先查询一个结果集,然后将满足结果集中某个条件的另外一张表中的字段做一个属性值的更改,这个更改可能是多个的 代码如下     2.SQL语句如下   3.但是执行的过程中,控制台报错,如下    Can not issue data manipulation statements with...

weixin_34375233的博客 904

SpringData工程 @Query注解及@Modifying注解

转载自:https://www.cnblogs.com/zhaobingqing/p/6864223.html @Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。 索引参数与命名参数     1、索引参数如下所示,索引值从1开始,查询中"?X"个数...

Lujunwei0205的博客 514

JPA笔记

JPA笔记 sql.Date保存时间只精确到年月日,使用sql.Timestamp可以精确到时分秒 JPA中的save和saveAll方法是面向业务的,每次插入都需要验证当前数据是否为新数据,所以如果是批量插入请勿使用save方法,会做许多无用判断。 @Query注解处理的是JPA实体和实体中的属性,不同于SQL直接处理表、字段。 查询时不需要@Modifying注解。@Modif...

sleepyocean 383
上一篇: Lombok常用注解详解
下一篇: SpringDataJPA在Entity中常用的注解浅析
微微一笑满城空
博客等级 码龄10年 6373粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值