2017-10-07 44 views
0

我的Grails 2.2.5应用程序突然开始出现MissingMethodException,没有任何代码变化,错误似乎是虚假的,所以我在某处怀疑是否有损坏。我得到这个错误:Spurious MissingMethodException,Grails 2.2.5

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'(Customer class)和'complete'(布尔)属性,而且我已经检查过我传递的是有效参数。在任何情况下,错误消息都会指定参数类型,并且这些都是正确的。

那么,为什么我的动态'findBy ...'方法突然停止工作?在过去,我经常发现做一个'grails clean'通常会把这些东西分类出来,但它似乎没有帮助过这个。

有什么我应该清除,给自己一个空白的石板?

回答

0

嗯,不知道那里发生了什么,但从'.grails/2.2.5/projects'删除了项目文件夹的伎俩。

后来:不,问题已回复。现在非常困惑。后来仍然:我现在已经确定了是什么触发了这个问题,尽管我完全不知道为什么会这样做。如果我向Sale类中添加Date类型的“已创建”属性,则问题会重复出现,直到我删除该属性,从MySQL表中删除列并删除项目文件夹。但是,如果我将此属性标记为可约束,则它可以正常工作。 ???

+0

您是否尝试使用where,criteria或hql查询来查询您是否得到不同的行为? – user615274

+0

不,我没有。在第一次提出问题时,我能够解决这个问题,用'def sale = customer.sales.find {it.complete == false}',它以不同的方式完成同样的事情。但问题是,我的代码没有问题。我对换掉一些无法工作的代码感到不安,我宁愿在其他地方找到潜在的问题。 –

相关问题