2014-10-04 51 views
0

我們可以通過@PostUpdate跟蹤更新的實體:通過JPQL UPDATE查詢獲取更新實體

@Entity 
public class Author { 

    ... 

    @PostUpdate 
    public void postUpdate() { 
     Tracker.trackEntity(this); 
    } 
} 

當我們更新使用EntityManager.merge(...)然後postUpdate()實體將被調用。

但我如何跟蹤使用批量更新修改的實體(EntityManager.createQuery(...).executeUpdate())?

+1

在執行更新查詢之前,您必須在select語句中使用相同的where子句。 – Chris 2014-10-05 03:47:15

+0

@克里斯很傷心。無論如何感謝評論。 – 2014-10-06 08:45:04

回答

2

除非您首先對受該UPDATE查詢影響的實體進行查詢,否則不能這樣做。這是UPDATE查詢的要點,它直接指向數據庫,並且沒有鉤子,例如回調或級聯。