【发布时间】:2012-01-12 03:36:33
【问题描述】:
我是 grails 的新手。我现在在我的域类中遇到问题。我有 3 个域类,Patient 类,Nurse 类和 NursePatient 类,NursePatient 类是复合键您可以在其中看到谁是 Patient 的主治护士,因此如果您查看其表格,您只能看到护士和患者的 id。这是我的 Nurse 类代码:
class Nurse {
String name
Nurse partner
boolean idle = true
static belongsTo = [hospital: Hospital]
static constraints = {
name(blank:false)
partner(nullable:true)
hospital(nullable:false)
}
String toString(){
"Nurse ${name}"
}
}
--> 这是我的 NursePatient 域类:
class NursePatient implements Serializable{
Nurse nurse
Patient patient
static mapping = {
version false
id composite:['nurse', 'patient']
}
static constraints = {
patient(nullable:false, validator:{val, obj -> val.hospital == obj.nurse.hospital})
nurse(nullable:false)
}
String toString(){
"Nurse ${nurse.name} - ${patient.name}"
}
void saveIt(Nurse x, Patient y){
def np = new NursePatient(nurse: x, patient: y)
if(np.save()){
def n = nurse.get(nurse.id)
n.idle = false
}
}
}
--> 我被要求打印一份没有病人的护士名单。我在想,当我使用 NursePatient 类中的 saveIt() 方法保存在表格中时,一旦 save() 成功,它就会改变Nurse 类的属性 idle 的值从 true 到 false 以便查询更容易。我的问题是,如果我在类 NursePatient 中的代码是正确的,或者是否可以从另一个类更改属性的值,我不会这样做。请帮助我..谢谢!
【问题讨论】:
标签: grails composite-key grails-domain-class