Grails - 如何在一对多关系中强制执行至少一个

mh3*_*377 2 grails groovy hibernate

请帮助您解决以下示例:

class Car {

    static hasMany = [cd:Cd, fluffyDice:FluffyDice, wheel:Wheel]

}



class Wheel{

     static belongsTo = [car:Car]

}
Run Code Online (Sandbox Code Playgroud)

如何强制汽车至少有一个车轮?

Bur*_*ith 5

您可以使用minSize约束.请注意,您需要初始化该集.通常你不这样做 - Grails会为你做这个 - 但是对于null集合不会触发约束:

class Car {
   Set wheels = []
   static hasMany = [wheels: Wheel]
   static constraints = {
      wheels minSize: 1
   }
}
Run Code Online (Sandbox Code Playgroud)

我重命名为wheel,wheels因为它是一个集合,复数名称更自然,特别是在添加元素时,例如汽车.addToWheels(new Wheel(...)).但这对功能没有影响.