0

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

1 回答 1

1

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

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

你有什么

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

除非您的命名查询返回一个字符串名称列表或类似的东西,否则这没有意义,显然它没有因为您遇到异常。

于 2013-08-09T17:24:59.350 回答