我有两个域,病人和过敏症。我想保存特定患者的过敏症(电子邮件是每个患者的唯一标识符)。细节来自一个android应用程序,电子邮件是其中一个参数。
假设一个用户已经存在,我该如何使用过敏服务才能做到这一点呢?
这是成功注册新患者并保存其详细信息的患者服务。我有一个控制器,它充当android应用程序的API。
@Transactional
class PatientService {
//creating new
def updateSave(params) {
def patient
//record exists
if(params.id){
patient = Patient.findById(params.id)
if(patient) {
patient.validate()
patient.dateUpdated = new Date()
patient.save(params)
}
}else{
params.password=MD5CodecExtensionMethods.encodeAsMD5(params.password)
patient = new Patient(params)
patient.validate()
System.out.println(patient.errors)
patient.save flush:true
}
return patient以下是我尝试过的过敏症服务,但被卡住了
@Transactional
class AllergyService {
def Save(params) {
def allergy
Patient patient
allergy = new Allergy(params)
allergy.validate()
System.out.println(allergy.errors)
allergy.save flush:true
return Allergy.findAllByPatient(params)
}发布于 2018-05-28 19:11:08
我假设Patient有许多Allergies,所以您必须创建一个适当的关联:
class Patient {
static hasMany = [allergies: Allergy]
}
class Allergy {
}Grails将自动向患者域注入一组过敏症。
在您的save方法中,您应该能够访问Patient或他的email属性,以便以某种方式将它们连接起来。然后,你可以这样做:
def save(patientEmail, params) {
Patient patient = Patient.findByEmail(patientEmail)
Allergy allergy = new Allergy(params)
patient.addToAllergies(allergy)
patient.save()
}https://stackoverflow.com/questions/50560962
复制相似问题