2016-05-12 24 views
0

我有一個域遊客其中有用戶域的屬於關聯協會如下:Grails的.save()不保存相關的域名

class Guest { 

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


} 

在我的服務GuestService.groovy,我試圖更新關聯信息與給定的客人

@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) 
     } 
    } 

我無法更新個人信息,我也沒有收到任何錯誤。 我調試了代碼,並且所有值都存在,直到調試點退出。我在網上搜索了這個堆棧上的其他相關問題,但沒有問題與此類問題有關。

+2

您可能有驗證錯誤:http://docs.grails.org/3.1.6/ref/Domain%20Classes/save.html –

+1

相關:[爲什麼GORM不保存我的對象?](http:/ /stackoverflow.com/q/9177563/217324) –

+0

我是grails的新手,從這些頁面學習基礎知識肯定會對我有所幫助,非常感謝鏈接 –

回答

1

你試過person.save(flush: true, failOnError: true)

它應該覆蓋保存錯誤時返回null的缺省行爲,並返回異常。