【问题标题】:Unique constraint in GrailsGrails 中的唯一约束
【发布时间】:2012-10-01 14:48:21
【问题描述】:

假设我有以下圣杯域实体:

class A { ... }

class B { ... }

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

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

    static constraints {
        a unique: 'b'
    }
}

是否可以在 grails 中基于 C 类中的两个属性(ab)定义唯一关系,因此不能创建具有相同 a 组合的两个 C 实例和b?

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

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]) 注释。我预计这个测试会失败,但它会通过。

【问题讨论】:

    标签: grails orm grails-orm


    【解决方案1】:

    应该是

    static constraints = {
       a unique: 'b'
    }
    

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

    【讨论】:

    • Thad 似乎不起作用。在我的测试中,我可以使用相同的 A 和 B 实例保存两个不同的 C 实例。我已经阅读了本指南,但还没有成功。
    • 我已经更新了我的问题,包括我的测试用例和其他信息。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2011-11-26
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多