2009-10-28 103 views
2

是否有可用於訂閱Hibernate或任何其他主流O/R映射框架的域對象更改的解決方案?例如,如果我在一個名爲「Apple」的數據庫中有一個表格,我希望能夠在Apple對象發生變化時通知我「或者在任何Apple對象的字段」顏色「發生變化時通知我。當然,我希望不僅僅是「改變了事情」的通知,而是更改對象的ID列表或更改對象的列表。這樣的解決方案是可擴展的。更改域對象的通知(Hibernate/Java)

總結要求:

  1. 所有更改到一個數據庫將經歷一個ORM
  2. 這應該是一個完整的解決方案,它可能將使用表達式的訂閱像「認購問題q where q.title like'%hibernate%'「其中」Question「是一個實體(Java對象映射到數據庫中的表)我對更新感興趣。不需要是字符串查詢,但應該有通用的方式來發出請求。

回答

3

生成這些通知的所有更改是通過ORM執行還是可能通過JDBC或其他訪問同一數據庫的應用程序更改數據?

如果所有更改都通過ORM並且您正在使用Hibernate,那麼您可以使用Hibernate的interceptors and events。另一方面,如果數據的所有更改都不通過ORM,並且處理通知的代碼相當簡單,那麼數據庫觸發器可能是更好的選擇。

+0

嗨,唐。雖然Hibernate攔截器和事件可以幫助我實現我自己的解決方案,但我正在尋找一些完整的,可以使用的東西。請參閱更新的問題。謝謝。 – Vladimir 2009-10-28 22:12:55