簡體   English   中英

如何獲取spring數據jpa中更新記錄的數量?

[英]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.

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