2011-05-16 91 views
1

我有一個域類,看起來像這樣:Grails的新域實例返回null

class Offerbyuser { 
    Number offerPrice 
    Number minHours 

    static constraints = {} 
} 

然後在控制器,我這樣做:

def offer = new Offerbyuser(offerPrice:1, minHours:3) 

報價始終是NULL。爲什麼?我錯過了明顯的東西嗎?

更新:所以這樣做工作,但什麼不工作,我發現是之後的方法。

user.addToOutgoingOffers(offer) 

用戶與Offerbyuser域類一到一對多的關係:

class User { 
    static hasMany = [outgoingOffers:Offerbyuser] 
} 

我得到這個錯誤:

groovy.lang.MissingMethodException:法無簽名:twitter4j。 UserJSONImpl.addToOutgoingOffers()適用於參數類型:(test.Offerbyuser)values:[Offer by user - Price:1,Tweet hours:3]

回答

2

您的代碼適合我。我認爲它可能是您的控制器類與您的域類不在同一個包中,並且您可能不包含域類。 Grails無法找到你「新」的類,但由於Groovy是一種動態語言,它不會拋出錯誤。

請試試這個:

在域類

package test 

class Offerbyuser { 
... 
} 

在控制器:

package test 

class TestController { 
... 
    def doSomething = { 
     def offer = new Offerbyuser(offerPrice:1, minHours:5) 
    } 
} 
+0

他們是在同一個包。 – Paul 2011-05-16 03:50:39

+0

UGH,原來我使用了錯誤的「用戶」。謝謝你的幫助! – Paul 2011-05-16 05:01:52