目的:通過主鍵的定列表更新同一表中的某些列,並返回有序INT []來指示行更新的成功與否春數據JPA更新多行
查詢(而不是本機):
update MyEntity e set e.col_1 = :v1, e.col_2 = :v2 where e.id in :ids
彈簧數據JPA方法:
@Modifying(clearAutomatically = true)
@Transactional
public int updateCols(@Param("v1") String v1, @Param("v2") String v2, @Param("ids") List<Long> idList);
彈簧JpaTransactionManager接口用於
問題:1)只有Spring Data JPA,該怎麼做? (由於存在大量代碼,定製存儲庫不是一個選項),我們希望僅通過Spring數據JPA實現等效於JDBC批量更新的效果。
2)彈簧數據JAP是否有可能通過上面的更新方法返回一個小於輸入列表大小的整數?如果發生這種情況,我們如何知道我的輸入列表中的哪一個失敗?以任何順序?
3)注意到上述方法成功完成後,數據庫行根本沒有被更新。我們如何用spring數據jpa強制它與數據庫同步? 4)如果實體更新沒有被Spring數據JPA刷新,那麼即使我們逐一更新而不是批量更新,我們仍然不會看到數據庫更改? 在此先感謝