2017-10-07 46 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}',它以不同的方式完成同樣的事情。但問題是,我的代碼沒有問題。我對換掉一些無法工作的代碼感到不安,我寧願在其他地方找到潛在的問題。 –

相關問題