论坛首页 入门技术论坛

ibatis queryForList 构造函数带参数的问题

浏览 10631 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-08-04  
ibatis 为带构造函数中需要传参数的查询,提供的有:
queryForObject(String statementName,Object parameterObject, Object resultObject) 方法,

但是其queryForList方法却没有类似的方法,

请教如何解决这个问题?谢谢.
   发表时间:2008-08-05  
queryForList方法返回的永远是List,而queryForObject(String statementName,Object parameterObject, Object resultObject) 方法只会返回一个对象,它主要是为了解决对象的构造函数受保护的问题而设计的。
0 请登录后投票
   发表时间:2008-08-05  

可是我使用queryForList的时候,却出现无法事例化对象的错误,楼上认为原因出在那里呢?报错信息在下面

 

即便他返回的是list也是对象的集合,因此仍旧要进行对象的创建,依然会涉及到构造函数的问题。

cn.openmotel.dao.DataAccessExceptionIBatis: com.ibatis.common.jdbc.exception.NestedSQLException: 
--- The error occurred in cn/sprbus/client/website/etc/mapping/News.xml. 
--- The error occurred while applying a result map. 
--- Check the News.newsResult.
--- The error occured while instantiating the result object 
--- Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class. 
Cause: java.lang.InstantiationException: cn.sprbus.client.news.domain.News

  其中news类创建的时候构造函数需要传memberPassport对象

 

我测试过,如果在news里面加一个不带参数的构造函数就不会出问题!但是不希望这样做.

 

请教,谢谢

0 请登录后投票
   发表时间:2008-08-08  
请问是否有人遇到这个问题?
0 请登录后投票
   发表时间:2009-03-10  
phpxiaoxin 写道

可是我使用queryForList的时候,却出现无法事例化对象的错误,楼上认为原因出在那里呢?报错信息在下面

 

即便他返回的是list也是对象的集合,因此仍旧要进行对象的创建,依然会涉及到构造函数的问题。

cn.openmotel.dao.DataAccessExceptionIBatis: com.ibatis.common.jdbc.exception.NestedSQLException: 
--- The error occurred in cn/sprbus/client/website/etc/mapping/News.xml. 
--- The error occurred while applying a result map. 
--- Check the News.newsResult.
--- The error occured while instantiating the result object 
--- Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class. 
Cause: java.lang.InstantiationException: cn.sprbus.client.news.domain.News

  其中news类创建的时候构造函数需要传memberPassport对象

 

我测试过,如果在news里面加一个不带参数的构造函数就不会出问题!但是不希望这样做.

 

请教,谢谢


bean中必须要有一个不带参数的构造函数,或缺省构造函数。

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics