我试图将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
课程,但这也没有做任何事情。
我已经确认matchDBInstance
和operatorInstance
都不为空。
详情
我在Windows 7计算机上运行Grails 2.4.3,JDK 7。
答案 0 :(得分:0)
这是Grails版本2.4.2中报告的错误 见https://jira.grails.org/browse/GRAILS-11579
我正在运行Grails 2.4.3,但在我的集成测试中仍然遇到这种情况。 一旦我改变了集成测试以扩展IntegrationSpec,这个问题就消失了。
答案 1 :(得分:-1)
确保两个域类都具有应该符合的package
。这应该是两个文件的第一行。您是使用grails create-domain
创建它们还是仅复制粘贴?
您可以单独对两个文件进行单元测试,然后一起查看是否还有导致此问题的其他问题
关于域类的更多信息会很好,你能提供整个代码吗?