欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring data jpa @Query update的坑及解決

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

Spring data jpa @Query update的坑

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

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

可以參考這個(gè)例子

?@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);

上例的重點(diǎn)是將EL表達(dá)式用單括號(hào)括起來。

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

實(shí)在不行的話,就nativeQuery = true。

Spring data jpa的update操作

使用jpa進(jìn)行update操作主要有兩種方式:

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

1)保存一個(gè)實(shí)體:repository.save(T entity)

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

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

注:若是更改,entity中必須設(shè)置了主鍵字段,不然不能對(duì)應(yīng)上數(shù)據(jù)庫(kù)中的記錄,變成新增(數(shù)據(jù)庫(kù)自動(dòng)生成主鍵)或報(bào)錯(cuò)(數(shù)據(jù)庫(kù)不自動(dòng)生成主鍵)了

2、@Query注解,自己寫JPQL語(yǔ)句

例:

@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時(shí)必須使用@Modifying對(duì)方法進(jìn)行注解,才能使得ORM知道現(xiàn)在要執(zhí)行的是寫操作

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

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! 

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

相關(guān)文章

  • log4j2 RollingRandomAccessFile配置過程

    log4j2 RollingRandomAccessFile配置過程

    這篇文章主要介紹了log4j2 RollingRandomAccessFile配置過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解Spring緩存注解@Cacheable,@CachePut , @CacheEvict使用

    詳解Spring緩存注解@Cacheable,@CachePut , @CacheEvict使用

    這篇文章主要介紹了詳解Spring緩存注解@Cacheable,@CachePut , @CacheEvict使用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因分析

    SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處

    這篇文章主要介紹了SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Jackson反序列化@JsonFormat 不生效的解決方案

    Jackson反序列化@JsonFormat 不生效的解決方案

    這篇文章主要介紹了Jackson反序列化@JsonFormat 不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • MyBatis-plus 模糊查詢的使用

    MyBatis-plus 模糊查詢的使用

    這篇文章主要介紹了MyBatis-plus 模糊查詢的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java幾個(gè)重要的關(guān)鍵字詳析

    Java幾個(gè)重要的關(guān)鍵字詳析

    這篇文章主要介紹了Java幾個(gè)重要的關(guān)鍵字詳析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考一下,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-07-07
  • Mybatis學(xué)習(xí)筆記之動(dòng)態(tài)SQL揭秘

    Mybatis學(xué)習(xí)筆記之動(dòng)態(tài)SQL揭秘

    這篇文章主要給大家介紹了關(guān)于Mybatis學(xué)習(xí)筆記之動(dòng)態(tài)SQL的相關(guān)資料,小編覺得挺不錯(cuò)的,對(duì)大家學(xué)習(xí)或者使用Mybatis會(huì)有一定的幫助,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • Springboot中的@ComponentScan注解使用解析

    Springboot中的@ComponentScan注解使用解析

    這篇文章主要介紹了Springboot中的@ComponentScan注解使用解析,@ComponentScan用于類或接口上主要是指定掃描路徑,spring會(huì)把指定路徑下帶有指定注解的類注冊(cè)到IOC容器中,需要的朋友可以參考下
    2024-01-01
  • jsp、struts、spring、mybatis實(shí)現(xiàn)前端頁(yè)面功能模塊化拆分的方案

    jsp、struts、spring、mybatis實(shí)現(xiàn)前端頁(yè)面功能模塊化拆分的方案

    這篇文章主要介紹了 jsp、struts、spring、mybatis實(shí)現(xiàn)前端頁(yè)面功能模塊化拆分的方案,非常不錯(cuò),需要的朋友參考下
    2017-01-01
  • java調(diào)用Oracle存儲(chǔ)過程的方法實(shí)例

    java調(diào)用Oracle存儲(chǔ)過程的方法實(shí)例

    這篇文章介紹了java調(diào)用Oracle存儲(chǔ)過程的方法實(shí)例,有需要的朋友可以參考一下
    2013-09-09

最新評(píng)論