如何从连接表中直接获取数据?

时间:2017-07-26 11:13:23

标签: java sql hibernate

是否可以直接从查询中检索数据到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

1 个答案:

答案 0 :(得分:1)

您需要使用ResultTransformer

另一个选项是转换为包含查询结果中列的行的List<Object[]>,然后迭代并提取数据(更多工作)。

变压器可能是这样的:

query.setResultTransformer(Transformers.aliasToBean(EmployeeForm.class));