是否可以直接从查询中检索数据到EmployeeForm
?
查询为存储过程empdata
SELECT a.name,b.username,b.password FROM Tbemployee left join Tbuser
代码
List<EmployeeForm> form = new ArrayList<EmployeeForm>();
EmpDB service = (EmpDB) RuntimeAccess.getInstance().getServiceBean(
service.begin();
Session session = service.getDataServiceManager().getSession();
SQLQuery query = session.createSQLQuery("EXEC empdata");
List list = query.list();
formList = list;
这给了我一个错误:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.emp.form.EmployeeForm
答案 0 :(得分:1)
您需要使用ResultTransformer
另一个选项是转换为包含查询结果中列的行的List<Object[]>
,然后迭代并提取数据(更多工作)。
变压器可能是这样的:
query.setResultTransformer(Transformers.aliasToBean(EmployeeForm.class));