首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用特定id/电子邮件保存到grails

使用特定id/电子邮件保存到grails
EN

Stack Overflow用户
提问于 2018-05-28 15:13:06
回答 1查看 57关注 0票数 1

我有两个域,病人和过敏症。我想保存特定患者的过敏症(电子邮件是每个患者的唯一标识符)。细节来自一个android应用程序,电子邮件是其中一个参数。

假设一个用户已经存在,我该如何使用过敏服务才能做到这一点呢?

这是成功注册新患者并保存其详细信息的患者服务。我有一个控制器,它充当android应用程序的API。

代码语言:javascript
复制
@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

以下是我尝试过的过敏症服务,但被卡住了

代码语言:javascript
复制
@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)

}
EN

回答 1

Stack Overflow用户

发布于 2018-05-28 19:11:08

我假设Patient有许多Allergies,所以您必须创建一个适当的关联:

代码语言:javascript
复制
class Patient {
    static hasMany = [allergies: Allergy]
}
class Allergy {
}

Grails将自动向患者域注入一组过敏症。

在您的save方法中,您应该能够访问Patient或他的email属性,以便以某种方式将它们连接起来。然后,你可以这样做:

代码语言:javascript
复制
def save(patientEmail, params) {
    Patient patient = Patient.findByEmail(patientEmail)
    Allergy allergy = new Allergy(params)
    patient.addToAllergies(allergy)
    patient.save()
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50560962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档