Grails中的唯一约束

时间:2012-10-01 14:48:21

标签: grails orm gorm

假设我有以下grail域实体:

class A { ... }

class B { ... }

在第三个实体中,我有一对多的关系如下:

class C {
    static belongsTo = [a: A, b: B]

    static constraints {
        a unique: 'b'
    }
}

grails中是否可以根据类a中的两个属性(bC)定义唯一关系,因此不能创建两个C个实例拥有ab的相同组合?

编辑:我的测试用例如下:

void testCompositeUniqueConstraint() {
    A a = // ...
    B b = // ...
    C existing = // ...
    existing.a = a
    existing.b = b
    mockForConstraintsTests(C, [existing])

    C c = // ...
    c.a = a
    c.b = b

    assertFalse c.validate()
}

在我的测试课上,我添加了@Mock([A, B])注释。我希望这个测试能够失败,但它会通过。

1 个答案:

答案 0 :(得分:1)

那就是

static constraints = {
   a unique: 'b'
}

请参阅http://grails.org/doc/latest/ref/Constraints/unique.html