【问题标题】:Grails .save() is not saving an associated DomainGrails .save() 没有保存关联的域
【发布时间】:2016-05-12 14:20:03
【问题描述】:

我有一个域 Guest,它与 PersonUser 域具有 belongsTo 关联,如下所示:

class Guest {

    static belongsTo = [
            person:Person,
            user : User // owner for guest
    ]


}

在我的服务 GuestService.groovy 中,我正在尝试更新与给定 guest 关联的相关 Person 信息:

@Transactional
    def updateGuests(def guestArray) {

        guestArray.each { data ->

            User user = User.findById(data["userId"])
            Guest guest = Guest.findByIdAndUser(data["guestId"] , user)
            if( ! guest )
                throw new NotFoundException("Invalid input parameters")

            println(" email : " + guest.person.email + " new email " + data["email"])

            Person person = guest.person
            //person = Person.findById(person.id)

            person.email = data["email"]
            person.phoneNumber = data["phoneNumber"]

            person.save(flush:true)
            //guest.save(flush: true)
        }
    }

我无法更新人员信息,也没有收到任何错误。 我调试了代码,所有值都存在,直到退出调试点。我在互联网上搜索了这个堆栈上的其他相关问题,但没有任何问题与此类问题有关。

【问题讨论】:

标签: grails


【解决方案1】:

你试过person.save(flush: true, failOnError: true)吗?

它应该覆盖在保存错误时返回null 的默认行为并改为返回异常。

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多