缺少addTo方法

时间:2014-08-12 08:44:54

标签: java grails

我试图将Grails中的addTo*方法用于另一个类。这些类有很多关系。我在第一堂课中定义了hasMany ..

static hasMany = [operators: Operator]

在另一方面做了同样的事情:

static hasMany = [matches: MatchDB]

我已经设定了这段关系的所有者:

static belongsTo = MatchDB

但是,当我尝试访问addToOperators时,如下所示:

def matchDBInstance = MatchDB.get(result.matchId);
Operator operatorInstance = Operator.get(result.operatorId);
matchDBInstance.addToOperators(operatorInstance);
matchDBInstance.save(flush: true);

我看到以下错误:

groovy.lang.MissingMethodException: No signature of method: footballservices.MatchDB.addToOperators() is applicable for argument types:   (footballservices.Operator) values: [footballservices.Operator : Op1]
Possible solutions: getOperators()
at footballservices.RestfulController.mapOperator(RestfulController.groovy:63)
at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.java:53)
at grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:49)
at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:82)
at com.brandseye.cors.CorsFilter.doFilter(CorsFilter.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

我试过了..

我花了一些时间在互联网上搜寻。我跑了grails clean,没有帮助。我还尝试添加:

List<Operator> operators;

MatchDB课程,但这也没有做任何事情。

我已经确认matchDBInstanceoperatorInstance都不为空。

详情

我在Windows 7计算机上运行Grails 2.4.3,JDK 7。

2 个答案:

答案 0 :(得分:0)

这是Grails版本2.4.2中报告的错误 见https://jira.grails.org/browse/GRAILS-11579

我正在运行Grails 2.4.3,但在我的集成测试中仍然遇到这种情况。 一旦我改变了集成测试以扩展IntegrationSpec,这个问题就消失了。

答案 1 :(得分:-1)

确保两个域类都具有应该符合的package。这应该是两个文件的第一行。您是使用grails create-domain创建它们还是仅复制粘贴?

您可以单独对两个文件进行单元测试,然后一起查看是否还有导致此问题的其他问题

关于域类的更多信息会很好,你能提供整个代码吗?