首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

mybatis: Mapped Statements collection does not contain value for.

2012-09-14 
mybatis: Mapped Statements collection does not contain value for...不止一次遇到这种异常,这次又纠结

mybatis: Mapped Statements collection does not contain value for...
不止一次遇到这种异常,这次又纠结了好久,检查了所有的SQL语法、XML标签等等。原来是因为我在<select>标签上加了中文注释导致的,杯具..
先看异常Trace:
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for cn.btsf.sys.baseinfo.dao.AirlinesDao.findSpaceForAirlines
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:412)
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:346)
at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:137)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:46)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:34)
at $Proxy20.findSpaceForAirlines(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.orm.ibatis3.SqlSessionTemplate$7$1.doInSqlSession(SqlSessionTemplate.java:229)
... 34 more


网上看到的可能导致此类错异常的原因:

The three names have to match:
- interface = com.enlliance.inventory.mappers.SettingMapper.class
- mapper file = /com/enlliance/inventory/mappers/SettingMapper.xml
- mapper namespace = com.enlliance.inventory.mappers.SettingMapper

这次给自己上了一课,追加一个可能的原因: 在XML中写了中文注释,如:
<!--这是中文注释,可能导致异常-->
<select id="findSpaceForAirlines" resultType=".." >.....</select> 1 楼 hellostory 2011-09-08   再补充一句:
如果StudentMapper.java里面的方法名称等在StudentMapper.xml找不到,也会出现上次错误!

热点排行