2012-07-11 48 views
1

我通過hibernate搜索加載了一些hibernate對象,然後在UI中顯示它們。在那裏,我們的用戶選擇一個對象並從@ManyToMany關聯中刪除一些元素。停止在關聯集合中保留更改

當然,正如在hibernate documentation中所寫的那樣,當會話刷新時,即使我沒有在找到的對象中調用Session#save,也會自動保持更改。

但這不是我需要的行爲。我需要我的用戶從關聯中刪除對象,但僅臨時刪除對象,僅用於在不更改數據庫的情況下從修改後的對象生成報告。因此,關聯中刪除的對象不會顯示在我的報告中。

我該如何做到這一點?

我在考慮將關聯的對象標記爲Cloneable並構建一個新實體並在那裏進行更改,因爲此特定UI中的所有操作都是隻讀的。

有什麼建議嗎?

回答

1

cascade="evict"標記收藏。然後根據需要刪除對象,生成報告,然後在沖洗前對象。

+0

請注意,我使用的是hibernate 3.6,所以CascadeType.DETACH代替了Evict。 – ElderMael 2012-07-11 19:36:07