2011-05-16 105 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