grails - 创建唯一的可选一对一关系

标签 grails gorm one-to-one

我正在尝试创建简单的一对一关系,但将其保留为可选。当我尝试保存“Face”对象时,出现“必须唯一”的验证错误。当用户添加新的“面部”时,不需要“ Nose ”。在此过程的后期,如果用户确实添加了“ Nose ”,则它必须是唯一的。

class Face {
    Nose nose
    static constraints = {
        nose unique: true, nullable: true
    }
}

class Nose {
}

最佳答案

就像tim_yates提到的那样,它确实适用于Grails 2.1.1。我的应用程序上存在配置问题。

为了测试这一点,我使用以下简单测试编辑了FaceTests.groovy文件:

package demo

import grails.test.mixin.*
import org.junit.*

@TestFor(Face)
class FaceTests {

    void testSaving() {

       def face = new Face()
        assertNotNull face.save(flush:true)

    }
}

结果:
grails> test-app
| Completed 2 unit tests, 0 failed in 451ms
| Tests PASSED - view reports in /Users/devin/Desktop/grails_demo_app/target/test-reports

关于grails - 创建唯一的可选一对一关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12584780/

相关文章:

grails - 为什么Grails域验证会拒绝类似http://wctest.jenkins:8080/CRMGateway的网址

grails - GORM Grails 2.3.5分配的ID不持久,被自动生成的ID覆盖

grails - Grails访问关系表

hibernate - 关于 Jpa 和 Hibernate 双向一对一的 N+1 问题

java - @OneToOne 作为 ManyToOneType 返回

grails - 从ajax调用从一个 Controller Action 重定向到另一 Controller Action

maven - 我如何在编译组gradle文件中具有属性

grails - 无法将 spock 安装到 grails 1.3.7 项目

hibernate - 如何在Grails 3中覆盖DomainClass getter

jpa - @OneToOne 需要 CascadeType.MERGE 吗?