2011-06-23 85 views
6

我在一個項目中使用JPA & Spring-Data JPA。我有一張表,其中插入並更新數據。然而,我需要審計信息來保存所有對象的狀態,即我需要插入狀態信息和所有後續更新在另一個表中。我知道我可以在數據庫中使用觸發器來執行此操作。但是,這可以使用JPA/Spring Data JPA來完成嗎?如何在JPA/Spring-Data JPA中使用審計?

任何幫助,將不勝感激。

回答

6

JPA規範(section 3.5)定義生命週期回調方法:

  • prePersist
  • postPersist
  • 刪除前
  • 刪除後
  • 更新前
  • postUpdate
  • 負荷後

這可能是您在純粹的JPA中找到的最接近的東西。 SpringData本身具有進一步的審計功能,這些功能處於略高的抽象級別。它在reference manual的第2.4節中對此進行了描述。

+0

雖然JPA規範將允許你這樣做,春數據JPA內置了一個非常漂亮的機制要做到這一點:http://static.springsource.org/spring-data/data-jpa/docs/curren t/reference/html /#jpa.auditing – bh5k

1
+0

我看到上面的鏈接,他們指定了可以在JPA中使用的歷史記錄功能,但是我只看到了TOPLINK和ECLIPSELINK的鏈接。任何想法,如果它可以與Hibernate一起使用嗎? – Abhishek

相關問題