http://p.primeton.com/reports/53ed7b25e13823423b0000a1
1. 我调用的方法:
EmpInfo[] emps=
this.getDASTemplate().queryByNamedSql(EmpInfo.class,"com.primeton.sql.empsql.select_emp",null);
2. 然后出错了,提示如下:
Can't convert class "com.primeton.data.sdo.impl.DataObjectImpl" to "com.primeton.sql.empdataset.EmpInfo"
3. 提示的错误行:
EmpInfo[] emps=
this.getDASTemplate().queryByNamedSql(EmpInfo.class,"com.primeton.sql.empsql.select_emp",null);
2. 然后出错了,提示如下:
Can't convert class "com.primeton.data.sdo.impl.DataObjectImpl" to "com.primeton.sql.empdataset.EmpInfo"
3. 提示的错误行:
at com.primeton.sql.EmpService.queryEmp(EmpService.java:27)
............这一行就是上面那个我调用的方法!怎么办?

本文讨论了在使用Spring调用方法时遇到的关于数据集转换的问题,并提供了解决方案。通过调整数据集中的EmpInfo实体实例类设置,解决了无法从DataObjectImpl转换到EmpInfo的错误。
1419






建议您调用普元构件库中的API,参考代码如下:
Map<String, String> parameterMap=new HashMap<String,String>();
parameterMap.put("orderId", orderId);
return DatabaseExt.queryByNamedSql("default","com.primeton.example.cache.order.loadOrder", parameterMap);
问题是由于数据集com.primeton.sql.empdataset.datasetx中的EmpInfo实体没有设置实例类,命名sql查询返回结果集时使用EmpInfo实体实例化,实体的数据类型是com.primeton.data.sdo.impl.DataObjectImpl,所以报错Can't convert class "com.primeton.data.sdo.impl.DataObjectImpl" to "com.primeton.sql.empdataset.EmpInfo"
打开com.primeton.sql.empdataset.datasetx中的EmpInfo实体属性,在描述标签页里,设置实例类为com.primeton.sql.empdataset.impl.EmpInfoImpl就可以解决问题了。