无法在Hibernate中操作列表SQL-Query?

时间:2013-08-09 17:18:05

标签: java hibernate

您好我有一个查询带来了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

1 个答案:

答案 0 :(得分:1)

您的列表不应该是List<String>,它应该是您的实体Hibernate返回的类型。假设是客户

List<Customer> listaResultados = query.list();

你有什么

List<String> listaResultados = query.list();

没有意义,除非你的命名查询返回一个String名称列表或类似的东西,显然它没有,因为你得到了异常。