使用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);

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

相关文章

  • java调用c程序通信示例代码

    java调用c程序通信示例代码

    这篇文章主要介绍了java调用c程序通信示例,大家参考使用吧
    2013-12-12
  • Java集合删除元素ArrayList实例详解

    Java集合删除元素ArrayList实例详解

    这篇文章主要介绍了Java集合删除元素ArrayList实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • java实现批量导入.csv文件到mysql数据库

    java实现批量导入.csv文件到mysql数据库

    这篇文章主要为大家详细介绍了java实现批量导入.csv文件到mysql数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • ZooKeeper开发实际应用案例实战

    ZooKeeper开发实际应用案例实战

    这篇文章主要为大家介绍了ZooKeeper开发的实际应用案例实战,文中附含详细开发应用源码,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-01-01
  • SpringCloud微服务应用config配置中心详解

    SpringCloud微服务应用config配置中心详解

    这篇文章主要介绍了SpringCloud微服务应用-config配置中心,包括相关知识介绍、搭建、动态刷新、测试,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Java实现一个简单的定时器代码解析

    Java实现一个简单的定时器代码解析

    这篇文章主要介绍了Java实现一个简单的定时器代码解析,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 解决JSTL foEach标签 刷新报错的方法

    解决JSTL foEach标签 刷新报错的方法

    本篇文章是对JSTL foEach标签刷新报错的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 解决springboot配置logback-spring.xml不起作用问题

    解决springboot配置logback-spring.xml不起作用问题

    这篇文章主要介绍了解决springboot配置logback-spring.xml不起作用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Java springboot yaml语法注解

    Java springboot yaml语法注解

    这篇文章主要介绍了SpringBoot中的yaml语法及静态资源访问问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 基于zipoutputStream的简单使用

    基于zipoutputStream的简单使用

    这篇文章主要介绍了基于zipoutputStream的简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论