跨域类约束

时间:2014-12-07 05:40:50

标签: grails grails-domain-class

我是Grails的新手,我有两个这样的域类:

class User {    
    String username
    String password

    static hasMany = ['boards':Board]
    static belongsTo = ['belongsToBoard':Board]
}

class Board {
    String message
    boolean starred
}

现在我希望像“User这样的约束可以board message是唯一的”(请注意,我不希望Board是唯一的,但是对于每个Usermessage应该是唯一的。例如:

User : batman
Board: test,test (messages)

无效,其中:

User: batman
Board: test

User: batgirl
Board: test

是有效的。

是否可以在grails constraints块中执行此操作?如果不是我应该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你的belongsTo财产很不寻常 - 如果这是一个多人,即用户有很多董事会,那么belongsTo就会出现在董事会方面。这可以实现级联删除,也只使用两个表;如果这种关系不是双向的,你会得到第三个来管理这种关系。如果它是多对多,那么你就错过了hasMany。{/ p>

如果它是一个多人,你把它放在董事会

static belongsTo = [user: User]

然后你可以在Board中放置一个2列唯一约束:

static constraints = {
   message unique: 'user'
}

“唯一”下“限制”部分右侧的文档中对此进行了描述。