Foros del Web » Programación para mayores de 30 ;) » Java »

Consulta de como usar SQL-QUERY de Hibernate ?

Estas en el tema de Consulta de como usar SQL-QUERY de Hibernate ? en el foro de Java en Foros del Web. Hola a todos, tengo una consulta resulta que tengo una aplicacion que tiene una arquitectura de Spring MVC con Hibernate, integrando con una libreria javascript ...
  #1 (permalink)  
Antiguo 08/08/2013, 19:04
Avatar de Sumerio  
Fecha de Ingreso: octubre-2009
Mensajes: 195
Antigüedad: 10 años, 1 mes
Puntos: 6
Pregunta Consulta de como usar SQL-QUERY de Hibernate ?

Hola a todos, tengo una consulta resulta que tengo una aplicacion que tiene una arquitectura de Spring MVC con Hibernate, integrando con una libreria javascript Ext Js:
Pero esta version que tengo para cargar las listas estaba usando Criteria, no lo veo eficiente usar Criteria porque me lista todos los campos de la tabla, porque me enfoque en usar SQL-QUERY en XML de la siguiente forma:

Código:
<hibernate-mapping>
  <sql-query name="getListCustomers">
        SELECT  ba_customer_id,
                ba_company_id,
                code,
                name,
                comercial_name,
                discount,
                is_active,
                created,
                observation
        FROM ba_customer        
  </sql-query>    
</hibernate-mapping>
En el CustomerDAOHibernate, lo tengo asi:

Código:
@SuppressWarnings("unchecked")
    public List<Customer> getAll(Pagination pagination) {
        Query query = sessionFactory.openSession().getNamedQuery("getListCustomers");
       
        List criteria = query.list();

        for (Iterator iterator = criteria.iterator(); iterator.hasNext();) {
            Customer customer = (Customer) iterator.next();
            System.out.println("Name: " + customer.getName());            
        }
    }
El punto es como usar el mismo codigo que usaba con Criteria que funcionaba bien (ya que he notado que criteria tiene unos metodos especiales como setProjection y otros), que les muestro a continuacion:

Código:
@SuppressWarnings("unchecked")
    public List<Customer> getAll(Pagination pagination) {
        Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Customer.class);
        //Total Count
        criteria.setProjection(Projections.rowCount());
        pagination.setTotalCount(criteria.uniqueResult());
       
        //Pagination
        criteria.setProjection(null);
        criteria.setFirstResult(Integer.parseInt(String.valueOf(pagination.getStart())));
        criteria.setMaxResults(Integer.parseInt(String.valueOf(pagination.getLimit())));
        if(StringUtils.isNotEmpty(pagination.getSort())){
            try {
                JSONArray jsonArray = new JSONArray(pagination.getSort());
                if(jsonArray.length()>0){
                    JSONObject jsonObject = jsonArray.getJSONObject(0);
                    String property = jsonObject.getString("property");
                    String direction = jsonObject.getString("direction");
                    if("ASC".equalsIgnoreCase(direction)){
                        criteria.addOrder(Order.asc(property));
                    }else{
                        criteria.addOrder(Order.desc(property));
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }else{
            criteria.addOrder(Order.desc("customerId"));
        }
        return criteria.list();
    }
Se los agradecere de que me puedan orientar para que tenga la misma funcionalidad con SQL-QUERY.

Etiquetas: hibernate, metodo, string, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:41.