最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring data jpa @Query update的坑及解決

 更新時間:2022年02月24日 10:36:25   作者:某Zz  
這篇文章主要介紹了Spring data jpa @Query update的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Spring data jpa @Query update的坑

jpa默認只有save(Entity)方法,如果數(shù)據(jù)庫中沒有記錄就新增,如果數(shù)據(jù)庫中有記錄就更新記錄。

如果要手動添加update(Entity)方法,

可以參考這個例子

?@Modifying
?@Query(value = "UPDATE SmallFileEntity s SET s.length = '#{entity.getLength()}' , s.modificationTime = '#{entity.getModificationTime()}', s.accessTime = '#{entity.getAccessTime()}' WHERE s.autoId = '#{entity.getAutoId()}' ", nativeQuery = false)
?void updateLengthAndModificationTimeAndAccessTime(SmallFileEntity entity);

上例的重點是將EL表達式用單括號括起來。

EL表達式中是可以書寫java語句的,在@Query注解中,EL表達式可以取到參數(shù)列表中的對象。

實在不行的話,就nativeQuery = true。

Spring data jpa的update操作

使用jpa進行update操作主要有兩種方式:

1、調(diào)用保存實體的方法

1)保存一個實體:repository.save(T entity)

2)保存多個實體:repository.save(Iterable<T> entities)

3)保存并立即刷新一個實體:repository.saveAndFlush(T entity)

注:若是更改,entity中必須設置了主鍵字段,不然不能對應上數(shù)據(jù)庫中的記錄,變成新增(數(shù)據(jù)庫自動生成主鍵)或報錯(數(shù)據(jù)庫不自動生成主鍵)了

2、@Query注解,自己寫JPQL語句

例:

@Modifying
@Query("update ShopCoupon sc set sc.deleted = true where sc.id in :ids")
public void deleteByIds(@Param(value = "ids") List<String> ids);

注:

1)update或delete時必須使用@Modifying對方法進行注解,才能使得ORM知道現(xiàn)在要執(zhí)行的是寫操作

2)有時候不加@Param注解參數(shù),可能會報如下異常:

org.springframework.dao.InvalidDataAccessApiUsageException: Name must not be null or empty!; nested exception i                is Java.lang.IllegalArgumentException: Name must not be null or empty! 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 非常適合新手學生的Java線程池優(yōu)化升級版

    非常適合新手學生的Java線程池優(yōu)化升級版

    作者是一個來自河源的大三在校生,以下筆記都是作者自學之路的一些淺薄經(jīng)驗,如有錯誤請指正,將來會不斷的完善筆記,幫助更多的Java愛好者入門
    2022-03-03
  • Java多線程中的Callable和Future詳解

    Java多線程中的Callable和Future詳解

    這篇文章主要介紹了Java多線程中的Callable和Future詳解,創(chuàng)建線程的兩種方式,一種是直接繼承Thread,另外一種就是實現(xiàn)Runnable接口,本文提供了部分代碼,需要的朋友可以參考下
    2023-08-08
  • Spring中的Sentinel熔斷降級詳解

    Spring中的Sentinel熔斷降級詳解

    這篇文章主要介紹了Spring中的Sentinel熔斷降級詳解,熔斷降級是一種保護系統(tǒng)穩(wěn)定性和可用性的機制,旨在防止故障的擴散和蔓延,提高用戶體驗和信任度,需要的朋友可以參考下
    2023-09-09
  • 深入淺出了解happens-before原則

    深入淺出了解happens-before原則

    一提到happens-before原則,就讓人有點“丈二和尚摸不著頭腦”。這個涵蓋了整個JMM中可見性原則的規(guī)則,究竟如何理解,把我個人一些理解記錄下來。下面可以和小編一起學習
    2019-05-05
  • springboot security之前后端分離配置方式

    springboot security之前后端分離配置方式

    這篇文章主要介紹了springboot security之前后端分離配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java動態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類型方式

    Java動態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類型方式

    這篇文章主要介紹了Java動態(tài)數(shù)組Arraylist存放自定義數(shù)據(jù)類型方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java實現(xiàn)時間動態(tài)顯示方法匯總

    Java實現(xiàn)時間動態(tài)顯示方法匯總

    這篇文章主要介紹了Java實現(xiàn)時間動態(tài)顯示方法匯總,很實用的功能,需要的朋友可以參考下
    2014-08-08
  • java實現(xiàn)門禁系統(tǒng)

    java實現(xiàn)門禁系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)門禁系統(tǒng)的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • IntelliJ IDEA引入第三方jar包或查看Java源碼的時候報decompiled.class file bytecode version:52.0(java 8)錯誤的解決辦法

    IntelliJ IDEA引入第三方jar包或查看Java源碼的時候報decompiled.class file byt

    今天小編就為大家分享一篇關于IntelliJ IDEA引入第三方jar包或查看Java源碼的時候報decompiled.class file bytecode version:52.0(java 8)錯誤的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • java迭代子模式詳解

    java迭代子模式詳解

    這篇文章主要為大家詳細介紹了java迭代子模式的相關資料,需要的朋友可以參考下
    2016-02-02

最新評論

丹巴县| 洪江市| 大埔县| 崇阳县| 师宗县| 乳山市| 昔阳县| 繁峙县| 荣成市| 北川| 黄浦区| 朝阳市| 天峻县| 城步| 丹凤县| 阿坝县| 新沂市| 静海县| 临邑县| 安平县| 安远县| 永仁县| 高青县| 资源县| 南阳市| 山西省| 平江县| 怀化市| 左贡县| 仁布县| 平和县| 栖霞市| 广昌县| 田阳县| 济源市| 玉田县| 双牌县| 兴安县| 凤凰县| 新建县| 开远市|