使用jpa原生sql@Query操作增删改查
更新时间:2021年06月11日 10:56:03 作者:燎草
这篇文章主要介绍了使用jpa原生sql@Query操作增删改查,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
jpa原生sql@Query操作增删改查
1、jpa 原生update的sql语句:
1.命名参数(推荐使用此方式):可以定义好参数名,赋值时使用@Param("参数 名"), 而不用管顺序。
为@Query注解传递参数的方式1:命名参数
/*@Query("delete from product where p.id=:id") List<Person> testQueryAnnotationParams2(@Param("status") String status, @Param("id") String id); void updateByProductId(@Param("id") String id);*/
2.索引参数如下所示,索引值从1开始,查询中"?X"个数需要与方法定义的参数个数相一致,并且顺序也要一致。
@Modifying(clearAutomatically=true) @Query(value = "update Product set status=1 where id=?1",nativeQuery = true) void updateByProductId(String id);
2、jpa 原生delete的sql语句:
@Modifying(clearAutomatically=true) @Query(value = "delete from Productwhere id=?1",nativeQuery = true) void delByProductId(String id);
3、jpa 原生insert的sql语句:
@Modifying(clearAutomatically=true) @Query(value="insert into product(id,name,category,description,status) values(?1,?2,?3,?4,?5)",nativeQuery = true) void addProduct(String id,String name,String cagetory,String description,String status);
4、jpa 原生insert的sql语句:
还没弄懂。。。。。。。。。。。。
//jpa 多对多关系的表联合查询 DAO层 @Query(value = "select s from SysUserDTO s left join s.sysOrgDTOSet o where (?1 is null or s.username like ?1) and (?2 is null or o.name like ?2)") Page<SysUserDTO> findByUsernameAndOrgName(String username, String orgName, Pageable pageable); // service层 public Page<SysUserDTO> findByUsernameAndOrgName(String username, String orgName, Pageable pageable){ String name = (username==null)?null:"%"+username+"%"; String orgname = (orgName==null)?null:"%"+orgName+"%"; return sysUserDAO.findByUsernameAndOrgName(name,orgname,pageable); }
JPA 用原生sql语句执行操作
这里在 @Query 注解中增加一个 nativeQuery = true 的属性,就可以采用原生 SQL 语句的方式来编写查询。
@Query(nativeQuery = true, value = "SELECT * FROM AUTH_USER WHERE name = :name1 OR name = :name2 ") List<UserDO> findSQL(@Param("name1") String name1, @Param("name2") String name2);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring框架基于注解的AOP之各种通知的使用与环绕通知实现详解
这篇文章主要介绍了Spring框架基于注解的AOP之各种通知的使用及其环绕通知,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-11-11spring boot使用拦截器修改请求URL域名 换 IP 访问的方法
Spring Interceptor是一个非常类似于Servlet Filter 的概念 ,这篇文章主要介绍了spring boot使用拦截器修改请求URL域名 换 IP 访问的相关知识,需要的朋友可以参考下2022-09-09Dubbo LoadBalance基于权重的随机负载均衡算法提高服务性能
这篇文章主要为大家介绍了Dubbo LoadBalance基于权重的随机负载均衡算法提高服务性能详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>2023-10-10
最新评论