【问题标题】:Make field unique based on a boolean field value with multiple column in grails domain根据 grails 域中具有多列的布尔字段值使字段唯一
【发布时间】:2020-02-06 07:03:33
【问题描述】:

我使用的是 grails-2.5.2 版本。我有一个字段,我想根据两个字段使其独一无二。但如果isActive 字段值为true,那么它将有一行具有相同的roll。但是如果false 则可以使用相同的roll 保存多个条目。我的课在下面:

    class Student {

    Integer roll
    String name
    Boolean isActive

    static constraints = {
      name(unique: ['roll', 'isActive'])
    }
}

其实我想要这样独一无二的——name(unique: ['roll', 'isActive' == true])

【问题讨论】:

    标签: grails grails-2.0 grails-domain-class


    【解决方案1】:

    其实我想要这样独一无二的-name(unique: ['roll', 'isActive' == true])

    我们在 GORM 中没有任何具体的支持来表达类似的东西。您需要在您自己的应用代码中表达该限制。

    我不能 100% 确定,这可能取决于您必须支持哪些数据库,但我认为在您的数据库中也没有一种表达这种限制的好方法。

    【讨论】:

    • 我们的业务此时需要这种类型的限制。但是没有gorm支持:(
    • “我们的业务此时需要这种类型的限制。” - 自己实现并不难。您可以使用应用程序中的逻辑或自定义约束来实现。
    • 首先我们使用了 findBy 属性,但它失败了。现在我们已经在域自定义验证中使用了,但我正在寻找 grails 提供的解决方案,但现在不可用
    猜你喜欢
    • 1970-01-01
    • 2013-05-08
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多