我是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
是唯一的,但是对于每个User
,message
应该是唯一的。例如:
User : batman
Board: test,test (messages)
无效,其中:
User: batman
Board: test
User: batgirl
Board: test
是有效的。
是否可以在grails constraints
块中执行此操作?如果不是我应该怎么做?
提前致谢。
答案 0 :(得分:1)
你的belongsTo
财产很不寻常 - 如果这是一个多人,即用户有很多董事会,那么belongsTo
就会出现在董事会方面。这可以实现级联删除,也只使用两个表;如果这种关系不是双向的,你会得到第三个来管理这种关系。如果它是多对多,那么你就错过了hasMany
。{/ p>
如果它是一个多人,你把它放在董事会
static belongsTo = [user: User]
然后你可以在Board中放置一个2列唯一约束:
static constraints = {
message unique: 'user'
}
“唯一”下“限制”部分右侧的文档中对此进行了描述。