Usar Criteria en Hibernate

Prefiero usar HQL a Criteria por las razones siguientes:

  • Las consultas con Criteria son adecuadas cuando el numero de parametros de busqueda es variable. Pero ….😦
  • Hacer consultas que relacionen mas de una clase es algo complicado, requiere crear otro Criteria en lugar de usar un operator punto (.) como en HQL.
  • Criteria no soporta operadores de funciones agregadas como count, entre otros.
  • Solo se pueden recuperar objetos completos.
  • Es util cuando se tiene un bean con varias propiedades y se quiere filtrar mediante una combinación de esas propiedades, por ejemplo:
public class Persona {
  private String nombre;
  private String apellidoP;
  private String apellidoM;
  private int edad;
  ...
  // getters and setters .... algo queda de tanto leer materiales en ingles .... :)
}
Criteria criteria = getSession().createCriteria(Persona.class);
criteria.add(Restrictions.between("edad", new Integer(5), new Integer(50)));
criteria.add(Restrictions.like("nombre", "%aug%"));
criteria.addOrder(Order.asc("edad"));
  • El objeto Criteria es identico al codigo HQL siguiente:
from Persona p where p.edad between 5 and 50 and p.nombre like "%aug%" order by p.edad

Aun no le encuentro uso en los proyectos que he desarrollado, generalmente las consultas que debo hacer usan objetos relacionados y por ello me quedo con el HQL, algun dia tendré la necesidad de usar Criteria?😦

Etiquetas:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: