使用jpa原生sql@Query操作增刪改查
jpa原生sql@Query操作增刪改查
1、jpa 原生update的sql語句:
1.命名參數(shù)(推薦使用此方式):可以定義好參數(shù)名,賦值時(shí)使用@Param("參數(shù) 名"), 而不用管順序。
為@Query注解傳遞參數(shù)的方式1:命名參數(shù)
/*@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.索引參數(shù)如下所示,索引值從1開始,查詢中"?X"個(gè)數(shù)需要與方法定義的參數(shù)個(gè)數(shù)相一致,并且順序也要一致。
@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 多對多關(guān)系的表聯(lián)合查詢 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語句執(zhí)行操作
這里在 @Query 注解中增加一個(gè) 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);
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JpaRepository如何實(shí)現(xiàn)增刪改查并進(jìn)行單元測試
- SpringDataJpa:JpaRepository增刪改查操作
- Spring boot2+jpa+thymeleaf實(shí)現(xiàn)增刪改查
- SpringBoot+MySQL+Jpa實(shí)現(xiàn)對數(shù)據(jù)庫的增刪改查和分頁詳解
- spring-data-jpa實(shí)現(xiàn)增刪改查以及分頁操作方法
- JPA之使用JPQL語句進(jìn)行增刪改查
- SpringBoot JPA實(shí)現(xiàn)增刪改查、分頁、排序、事務(wù)操作等功能示例
- SpringDataJPA詳解增刪改查操作方法
相關(guān)文章
SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼
這篇文章主要介紹了SpringSceurity實(shí)現(xiàn)短信驗(yàn)證碼功能的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Mybatis中如何設(shè)置sqlSession自動(dòng)提交
在MyBatis中,默認(rèn)情況下,獲取的SqlSession對象不會(huì)自動(dòng)提交事務(wù),這意味著在進(jìn)行更新、刪除或插入等操作后,需要顯式調(diào)用commit方法來提交事務(wù),但是,可以在獲取SqlSession時(shí)通過將openSession方法的參數(shù)設(shè)置為true2024-09-09Spring框架基于注解的AOP之各種通知的使用與環(huán)繞通知實(shí)現(xiàn)詳解
這篇文章主要介紹了Spring框架基于注解的AOP之各種通知的使用及其環(huán)繞通知,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11spring?boot使用攔截器修改請求URL域名?換?IP?訪問的方法
Spring Interceptor是一個(gè)非常類似于Servlet Filter 的概念 ,這篇文章主要介紹了spring?boot使用攔截器修改請求URL域名?換?IP?訪問的相關(guān)知識(shí),需要的朋友可以參考下2022-09-09詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例
這篇文章主要介紹了詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12Dubbo?LoadBalance基于權(quán)重的隨機(jī)負(fù)載均衡算法提高服務(wù)性能
這篇文章主要為大家介紹了Dubbo?LoadBalance基于權(quán)重的隨機(jī)負(fù)載均衡算法提高服務(wù)性能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-10-10