我现在很难建立约束,我有3个域类,分别是医院,医生和患者,其中医院和医生具有1:1的关系,而医生和也有1:m的关系。因此,我被要求创建一个虚拟数据,在该数据中,我必须创建两个拥有医生和患者的不同医院。这是域类 Hospital 的代码。class Hospital {
String name
String location
static transients = ['patients']
static hasMany = [doctor: Doctor, patient: Patient]
static constraints = {
name(blank:false)
location(blank:false)
doctor(nullable:false)
} }
->这是域类 Doctor 的代码。class Doctor {
String name
String specialization
static hasMany = [patient: Patient]
static belongsTo = [hospital: Hospital]
static constraints = {
name(blank:false)
specialization(blank:false)
patient(nullable:true)
hospital(nullable:false)
} }
->和患者域类class Patient {
String name
String ailment
int age
Date dateAdmit, dateDischarge
static belongsTo = [doctor: Doctor, hospital: Hospital]
static constraints = {
name(blank:false, maxSize:100)
ailment(blank:false)
age(size:1..200)
dateAdmit(nullable:true)
dateDischarge(nullable:true)
doctor(nullable:false)
hospital(nullable:false)
}}
->我救了2家医院,即医院A 和医院B 与医生和患者,我的问题是我需要确保医院B 的医生不能让医院的患者来自医院的Doctort和r或患者必须在同一家医院。我相信我需要使用自定义验证程序。但是我不知道怎么做,因为我应该比较不同 Realm 的属性。请帮我...
最佳答案
这应该可以解决问题:
doctor(nullable:false, validator: { d, inst ->
return d.hospital == inst.hospital;
})
关于grails - 如何从自定义验证器Grails中的另一个Domain类引用属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721943/