0
Hibernate使用DTO的設計問題。Hibernate @Version和DTO的
在我們的一個實體上,我們使用樂觀鎖定和@Version註釋。目前的問題是,在合併版本號後不更新,直到後沖洗。這意味着它發生在我們的DTO轉換過程之外。我們最終將轉換後的DTO發送迴帶有舊版本號的客戶端。對Hibernate的後續操作現在會導致樂觀鎖定失敗,因爲Hibernate會檢查不同的db版本號。
我已經設法解決這個問題,涉及到使用ThreadLocal容器和事件偵聽器的一些竅門,但不知道是否有一個公認的最佳做法圍繞着如何處理由系統在使用業務/客戶端後刷新的屬性DTO的。
任何意見或想法讚賞, 謝謝, 尚茲
在將實體轉換爲DTO之前,你不能簡單地調用flush()嗎? – 2013-03-11 15:51:22
道歉應該解釋 - 試圖在標準的DAO框架內做到這一點,因此我想盡量避免儘早刷新,因爲我們可能需要適用於所有合併操作。這種行爲在我們的系統中可能並不理想。 – Andy 2013-03-11 16:17:01