簡體   English   中英

JPARepository save()不會將所有值更新到DB。 但是給出結果

[英]JPARepository save() does not update all values to DB. But gives result

我正在嘗試使用JPARepository save()更新MySQL表的字段。 但save()更新了該字段,該字段為空但不更新已具有某些值的字段。

當前在DB中的值:place:null itemcount:2

新值在temp中傳遞到更新位置:Noplace itemcount:1

我試過1. save(),2。saveEndFlush with @Transaction 3.在更新之前再次獲取實體。

public Cons updateCons(Cons temp, Cons con) {

Cons tempCons = consRepository.findOneByIdAndConstId(cons.getId(),cons.getConsId());
   // tempCons.setId(cons.getId());

    log.info("before saving cons :{}, count={}",consignment.getConsId(),temp.getItemCount());
    tempCons.setItemCount(temp.getItemCount());
    tempCons.setplaceStatus("Noplace"); // this filed is currently null


    Cons result = consRepository.saveAndFlush(tempCons);
    log.info("after saving cons :{}, count={}",cons.getConsId(),result.getItemCount()); // logs the updated value on itemCount.

}

預期結果:itemcount應更新為新值,應使用硬編碼值“Noplace”進行更新

實際結果:項目計數未在db中使用新值更新。 但是地點用“Noplace”更新但是日志會將新值打印為計數。

我的猜測是你要么再次更改值(在打印日志之后,在另一種方法中),要么將其作為事務的一部分運行,該事務在此過程中某處失敗,因此未提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM