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