我突然开始在我的Grails 2.2.5应用程序中获取MissingMethodException,而无需对代码进行任何更改,并且该错误似乎是虚假的,因此我怀疑某个地方存在损坏。我收到此错误:
No signature of method: arthurs.Sale.findByCustomerAndComplete() is applicable for argument types: (arthurs.Customer, java.lang.Boolean) values: [arthurs.Customer : 59, false]
Possible solutions: findByCustomerAndComplete([Ljava.lang.Object;). Stacktrace follows:
Message: No signature of method: arthurs.Sale.findByCustomerAndComplete() is applicable for argument types: (arthurs.Customer, java.lang.Boolean) values: [arthurs.Customer : 59, false]
Possible solutions: findByCustomerAndComplete([Ljava.lang.Object;)
到昨天为止,这个工作还不错。实际上,Sale类确实具有“customer”(客户类)和“complete”( bool(boolean) )属性,并且我检查了所传递的内容是否是有效参数。在任何情况下,错误消息均会指定参数类型,并且这些类型正确。
那么,为什么我的动态“findBy ...”方法突然停止工作?在过去,我经常发现进行“网格清理”通常会解决此类问题,但似乎并没有帮助。
还有什么我应该清除的东西,给自己一个空白吗?
最佳答案
好吧,不知道那里发生了什么,但是从'.grails / 2.2.5 / projects'中删除项目文件夹就可以了。
后来:不,问题又回来了。现在对此感到非常困惑。
稍后:好的,我现在确定是什么引发了问题,尽管我完全不知道为什么会这样。如果我将类型为Date的“created”属性添加到我的Sale类中,该问题将再次发生并一直存在,直到我删除该属性,从MySQL表中删除该列并删除项目文件夹。但是,如果我在约束中将此属性标记为可为空,则可以正常工作。 ???
关于grails - 虚假的MissingMethodException,Grails 2.2.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46619064/