2011-05-19 78 views
0

我有以下域類架構:我如何通過添加關係來避免增加版本?

class A { static hasMany=[abRelations: AB] } 
class B { static hasMany=[abRelations: AB] } 
//relation table 
class AB{ 
A a 
B b 
String someAttribute 
} 
在某些情況下

我絕對需要的abRelations關聯,例如HQL查詢,指標分析,...

我的問題是,當我創建

new AB(a: a, b: b, someAttribute: "hello").save() 

新的AB記錄A的版本場,B得到提高。我可以通過添加一個特殊的映射選項或類似的東西來避免這種情況?我在某些類中使用afterUpate事件,並且當添加新關係時也會觸發此事件 - >這就是我的主要問題!

回答

0

您可以通過添加完全刪除版本字段中輸入以下域類

static mapping = { 
    version false 
} 

我的理解是,有沒有辦法行使時version領域得到之上增加細粒度控制。您要麼有一個version字段,每次更新域對象時它都會自動增加,或者根本沒有。

+0

感謝您的答案,我想這可能會有另一種解決方案。我不想通過從A和B中刪除版本字段來釋放樂觀鎖定功能。對於我的問題,最好的解決方案是手動調用afterUpate中的代碼。 – hitty5 2011-05-19 09:20:38

0

如果你不想讓A和B版本增加,那麼保持關係是單向的,所以A和B不知道AB關係。

+0

謝謝,但我需要執行hql查詢和標準的關係。否則你會得到這些缺失關聯的hibernate path execption。 – hitty5 2011-05-19 10:47:00

相關問題