2011-05-19 77 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

相关问题