[英]How to get count of updated records in spring data jpa?
我使用spring數據jpa和hibernate作為jpa持久性提供程序。
我在我的應用程序中使用本機查詢。 有一些更新查詢,我想獲得更新查詢執行時更新的實際記錄數。 在spring數據jpa中有沒有辦法做到這一點?
我目前正在遵循以下方法;
@Modifying
@Query(value="update table x set x_provision = ?1 where x_id = ?2", nativeQuery=true)
int updateProvision(Integer provision, Integer id);
@Transactional添加在服務層上。
這里的問題是,當表更新時,我將計數為1.但是在某些情況下沒有更新行。 在這種情況下,我也將計數作為1.但我希望收到更新的實際記錄數,有時為0。
如果我在這里做錯了,有人可以告訴我嗎?
如果您看一下用於執行此查詢的ModifyingExecutor
@Override
protected Object doExecute(AbstractJpaQuery query, Object[] values) {
int result = query.createQuery(values).executeUpdate();
if (em != null) {
em.clear();
}
return result;
}
然后你看,它只委托給原生JPA基礎設施,以返回更新元素的數量。
因此,這可能與使用過的數據庫或ORM框架配置有關,除此之外,您編寫的查詢應該返回正確的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.