gpt4 book ai didi

grails - 我可以从另一个域类更改属性的值吗? -ils

转载 作者:行者123 更新时间:2023-12-02 14:46:32 26 4
gpt4 key购买 nike

我是个新手。我现在在我的域类中遇到问题。我有3个域类,患者类,护士类和 NursePatient类 NursePatient类类是一个复合键,您可以在其中查看谁是患者的主治护士,因此,如果您查看其表,只能看到护士和病人的身份证。这是我的护士类别的代码:

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 ojir_rstrong类的空闲属性值设为,设为false ,以便查询更加轻松。我的问题是我的类 NursePatient 中的代码是否正确,或者是否可以从另一个类更改属性的值,我不知道。请帮助我..谢谢!

最佳答案

在不同类中更改域类的属性很好。

但是,您实际上并不需要NursePatient类。如果您声明护士与患者之间的关系是多对多的,例如:

class Nurse {
static hasMany = [patients: Patient]
...
}

class Patient {
static hasMany = [nurses: Nurse]
...
}

然后Grails将自动创建并更新所需的联接表。然后,您可以使用 Criteria API查询所有没有患者的护士:
def nursesWithoutPatients = Nurse.withCriteria { isEmpty("patients") }

关于grails - 我可以从另一个域类更改属性的值吗? -ils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com