您好我有一个查询带来了Hibernate XML的SQL-Query列表 提出一个问题,我是否要在变量中捕获查询列的值:
Query query = sessionFactory.openSession().getNamedQuery("getListCustomers");
List<Customer> listaResultados = query.list();
for (int i = 0; i < listaResultados.size(); i++) {
System.out.println("Nombre " + i + ": " + listaResultados.get(i));
Map values = (Map) listaResultados.get(i);
Integer code = Integer.parseInt(values.get("code").toString());
System.out.println("===> code: "+code);
}
这使我处于控制台中,在地图中失败:
Hibernate: SELECT ba_customer_id,
ba_company_id,
code,
name,
comercial_name,
discount,
is_active,
created,
observation
FROM ba_customer
exception is java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.Map] con causa raíz
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.Map
答案 0 :(得分:1)
您的列表不应该是List<String>
,它应该是您的实体Hibernate返回的类型。假设是客户
List<Customer> listaResultados = query.list();
你有什么
List<String> listaResultados = query.list();
没有意义,除非你的命名查询返回一个String名称列表或类似的东西,显然它没有,因为你得到了异常。