1. 程式人生 > >Unable to locate appropriate constructor on class報錯

Unable to locate appropriate constructor on class報錯

cto clas strong 這不 使用 構造 arguments sql 運行

在項目開發中,使用Hibernate裏的JPA criteria查詢,但是在寫完之後使用時,會報錯:Unable to locate appropriate constructor on class,網上搜索不少說是因為構造函數類型錯誤導致的,於是仔細檢查了定義的數據類,發現並沒有錯誤的類型。

於是繼續查看報錯,發現報錯裏還有:Expected arguments are: long, java.lang.String, java.lang.String, java.lang.String,然後仔細看了下,這個類型的順序是我在查詢語句中獲取字段的順序,然後發現這個順序跟我定義數據類的順序不一樣,這就尷尬了,然後又網上搜索了一圈,發現有篇博文裏提到這麽一句話:SQL語句的字段順序一定要與實體類字段的順序保持一致,否則會出現參數封裝錯誤的情況。

這不就是我的報錯嗎,於是改了下自己查詢sql語句中字段的順序,保持跟數據實體類定義的順序一致,再運行項目,果然就沒有報錯了,這個坑真是囧。

Unable to locate appropriate constructor on class報錯