`

Cause: net.sf.cglib.beans.BulkBeanException异常

阅读更多
今天升级现网时遇到一个问题!但在本地开发的时候却没有出现过这样的问题,现网的系统是linux。
异常信息如下:

com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in sqlmaps/sql-t.xml.  
--- The error occurred while applying a result map.  
--- Check the Task.result-task-obj.  
--- The error happened while setting a property on the result object.  
--- Cause: net.sf.cglib.beans.BulkBeanException
        at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204)
        at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
        at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
        at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
        at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
        at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:94)

最后通过baidu一下知道了异常Cause: net.sf.cglib.beans.BulkBeanException引起的原因是数据库表中有一个可以为空的列(列的类型是number),当查询的时候由于该列没有值ibtis会用null去初始化该列,但把null类型赋值给number类型的值时,出现如上异常信息。解决方法是找到ibatis配置文件sql-t.xml中的
<resultMap id="result-task-obj" class="Task_Obj">
<result property="duplicated" column="DUPLICATED"/>
</resultMap>

把
<result property="duplicated" column="DUPLICATED"/>
修改成
<result property="duplicated" column="DUPLICATED" nullValue="0"/>
即当DUPLICATED列对应的值为null时,会用0值初始化duplicated属性(duplicated对应其类中的数据类型是int)。修改后系统运行正常。
分享到:
评论
5 楼 chenhua_1984 2012-06-21  
很不错!
4 楼 sunwang810812 2011-10-26  
NND,我也碰到这个破问题了,帮大忙了
3 楼 songfantasy 2010-10-08  
3Q
3Q
3Q
2 楼 java_frog 2010-06-04  
qq:85839593,做个朋友.
1 楼 java_frog 2010-06-04  
NND,今天正好用到了,确实,少这个就TM报错,THANK了.

相关推荐

Global site tag (gtag.js) - Google Analytics