我打算創建一個自定義驗證模型,該模型依賴於Hibernate的Pre和Post Listener。自定義Hibernate業務驗證模型:可能的風險
每個驗證類應包含一個業務規則(不是輸入檢查),在執行插入,更新或刪除操作之前需要檢查該規則。 這就是爲什麼它取決於聽衆如PreInsertEventListener
,PreUpdateEventListener
,PreInsertDeleteListener
。
驗證類有時需要檢查數據庫中的某些內容。我讀過其他帖子,建議不要插入或更新Listener中的內容?但我打算只做只讀通話。
要恢復:
- 驗證類是關係到一個特定的實體;
- Validaton類由Hibernate
Listener
調用; - 驗證類可能會在DB中執行一些「只讀」調用;
- 驗證類在相同的Hibernate中執行
Session
和Transaction
; - 當規則不滿足時,會拋出一些
RuntimeException
導致當前的回滾Transaction
;
這個概念的優點是所有的業務規則都可以放在與一個實體特別相關的驗證類中。這避免了業務規則分散在不同的服務上。
您如何看待這種方法?是否有任何缺點/風險(特別是Hibernate相關),我需要照顧?