我的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'通常会把这些东西分类出来,但它似乎没有帮助过这个。
有什么我应该清除,给自己一个空白的石板?
您是否尝试使用where,criteria或hql查询来查询您是否得到不同的行为? – user615274
不,我没有。在第一次提出问题时,我能够解决这个问题,用'def sale = customer.sales.find {it.complete == false}',它以不同的方式完成同样的事情。但问题是,我的代码没有问题。我对换掉一些无法工作的代码感到不安,我宁愿在其他地方找到潜在的问题。 –