ibatis there is no statement named xxx in this SqlMap


原因大概有三種情況:

1. 你的sqlmap 文件中確實沒有xxx這個statement ,很有可能某個字母寫錯了。

2. 實體映射文件未加入到sqlMap-Config.xml文件中。 
  原因是:框架只讀取sqlMap-Config.xml文件,對新建的sqlMap引入文件即使注入bean也不予理睬。將引入文件加入sqlMap-Config.xml就可以解決問題。 
  把用到xml文件加到sqlMap-Config.xml中引入就可以了 

2. sqlmap文件配置定義了使用namespace屬性,useStatementNamespaces="true",此時在本文件中引用別的statement,就需要這樣寫:(你的namespace).(定義的statement 的id),如果把namespace屬性漏了,就被報此異常。解決辦法:不用空間聲明即,useStatementNamespaces="false";

我出現這個錯誤因為里面一對多關聯查詢,我用:(你的namespace).(定義的statement 的id),User.getAll這個時候,因為要加載相關的一對多數據,就必須在另外關聯查詢。

但我用了空間命名查詢。於是ibatis找不到。因為你用了空間命名,所以你只要在這個找不到的getAllWithXXX的前面加上你的命名空間,比如:User.getAllWithXXX就可以成功的查詢到了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM