Cita:
Iniciado por ElAthlit Yo no uso criteria en Hibernate.
Código Java:
Ver originalString hql
= "FROM Persona p WHERE p.edad > 30"; List<Persona> lista = (List<Persona>)getCurrentSession().createQuery(hql).list();
Y si me apuras, te lo dejo en una sola linea
como dije arriba, esto es todavia peor:
- ¿Quien te garantiza que no escribiste "SLEECT" en lugar de "SELECT" o "WHEER" en lugar de "WHERE" por ejemplo?
- ¿Hay alguna herramienta que verifique esto en tiempo de compilación?
- Qué pasa si el 30 en lugar de lugar de estar hardcodeado en la consulta viene desde un parámetro del método?
- ¿Qué pasa si le cambio el nombre al campo edad en la entidad?
- ¿Qué pasa si el campo "edad" deja de estar en la entidad Persona y lo paso a "DatosPersonales", por ejemplo, donde Persona tiene una relación 1-1 con DatosPersonales?
- ¿Cómo hago si quiero componer la consulta ante determinadas circunstancias?
Tengo un caso ahora mismo donde quiero filtrar por edad SOLO si el usuario marca un checkbox,
Código Java:
Ver originalif (filtrarPorEdad) {
// ... Como hago esto? Concatenando el string?
}
Igual, uses lo que uses, la realidad es que esta aplicacion no la hice yo, y es un asco. Realmente trabajan asi en java a esta altura?
¿Para qué sirve usar un lenguaje estático si la mitad de tu código (diría la parte más importante) está en un string?