2017-04-24 320 views

回答

0

有沒有辦法將Envers設置爲「只讀」?

是的,你基本上需要重寫EnversIntegrator,使其不登記標準Envers聽衆與Hibernate ORM,從而有效地引起Envers不存儲任何數據修改過程中的事務提交。

使用觸發器快得多恕我直言

我認爲速度是不是你應該考慮在這裏的唯一的事情。

第一個問題是,你可以複製一系列模仿行爲的Envers聽衆以之符合Envers查詢API做觸發器的所有行爲

對於不維持審計關係的簡單實體,只要您的觸發器被寫入與您選擇的任何審計策略一起工作,這可能會稍微微不足道。對於審覈過關係更復雜的實體,我懷疑你的觸發器編寫和處理所有用例的難度要大得多。

我所關心的是它帶來的技術債務

問題是,升級到更新的版本變得非常單調乏味。您必須查看每個升級版本的源代碼,以確保您的觸發器中的任何決定都不需要改變以保持與查詢API兼容。

您是否有任何基準測試表明類似基於觸發器的解決方案實際上比Envers聽衆今天所做的更快?

相關問題