Mi lugar de trabajo actual utiliza la mezcla Spring/Hibernate/JSP estándar para servir contenido a su cliente Flex a través de XML. Hay muchas maneras en que se accede a los datos, pero el más frecuente es a través de llamadas SQL directas a la base de datos y una conversión manual a XML.Java/Hibernate: cómo escribir código DAO para SQL complejos
El problema es que a medida que la aplicación creció, los SQL se volvieron mucho más complejos y difíciles de mantener. Como si no fuera lo suficientemente difícil mantener los SQL que se crearon usando StringBuilders, ahora es aún peor, que los SQL se construyen dinámicamente utilizando muchas sentencias y bucles if.
Sé que, por lo general, el camino correcto es buscar elementos utilizando las consultas y entidades de Hibernate. Sin embargo, en algunas de nuestras solicitudes, los resultados no pueden asignarse a una sola entidad de Hibernate y me temo que SQL directo debe ser utilizado.
¿Cuál sería la forma correcta de hacerlo? ¿Hay alguna manera de hacer más legibles las consultas SQL dinámicas? ¿Hay alguna manera de hacerlo con las entidades de Hibernate?
Disculpa la naturaleza abstracta de esta pregunta. Espero que tengas una buena entrada, no obstante;)
¡Gracias por sus comentarios!
Estoy de acuerdo aquí, a pesar de que a mucha gente no le gustan los procesos almacenados y la lógica en SQL. Si tiene una consulta SQL realmente compleja, no hay forma de simplificarla al intentar hacerlo en código, o utilizando un lenguaje de consulta menos robusto como HQL. –