我有一個項目,最近從OpenJPA
轉換爲Hibernate
。在替換特定於OpenJPA
的配置部分時,我遇到了一個我無法在Hibernate
中複製的函數。休眠定製刪除策略
在OpenJPA
中,我們通過使用@Strategy
註釋實體並提供org.apache.openjpa.jdbc.meta.strats.AbstractStrategy
的實例來執行自定義刪除操作。在customDelete
方法中,我們調用單個共享存儲過程並傳遞表名,實體標識和用戶標識來執行操作,此過程將刪除實體並創建審覈日誌條目。
在Hibernate
,我可以找到一些可用的鉤子,但沒有一個似乎提供相同的功能。我已經看過了以下內容:
@SQLDelete(「客戶刪除查詢」) - 此選項僅允許您訪問ID,而不是表名或用戶ID,以便每個類的定製和仍然缺乏信息
EntityListener類 - 這個選項告訴你刪除的實體,而是需要挖掘得到的實際上涉及到哪些表,是一個單一的數據庫操作
的範圍是否有是任何其他選項與OpenJPA方法更接近匹配,或者是我最好的選擇,與EntityLister
類,並做我自己的繁重確定表名稱?