Hi, segun Fabio ha recomendado en el pasado he tratado siempre de escribir
un HQL cuando algo es estatico, y criteria cuando es dinamico y dependiente
de varios inputs.

En general esa linea sirve bastante y tengo la ventaja de tener unas cuantas
consultas parseadas desde el principio.

Ahora lo que me ha pasado en algunos casos es que algunas consultas se
mantienen estaticas a lo largo del tiempo pero van variando mucho, y se le
van agregando mas condiciones, llega un momento que es imposible de entender
lo que la consulta hace ("pero anda volando anda y bien parseada")

Bueno, ahora tengo jsuto una consulta que empezo por ser un simple select, y
ahora ya tiene un exists y un par de condiciones mas en el where...y ya veo
que en el corto plazo voy a tener que poner un par de condiciones mas...

Bueno, si bien la politica de NamedQuery es interesante, creo que lo mejor
es llevar el armado del query al codigo, ya sea Criteria o DynQuery de modo
de poder poner un poco mas de orden en la forma de creado de la consulta y
que se entienda lo que estoy buscando.

Ahora estaba tratando de decidir si aprender a usar el DynQuery de uNHAddins
o quedarme con criteria (todo esto al menos hata que llegue LINQ obviamente)

En un principio mi decision seria criteria salvo para consultas complejas
con group by, subqueries complejas, etc, que en Criteria, al menos para mi
son un tanto complejas.
La ventaja de Criteria es que usando LambdaExtensions puedo tener un poco
mas de chequeo de sintaxis en codigo que en HQL.

La ventaja de DynQuery seria aprovechar la fuerza de HQL manteniendo la
posibilidad de armar las cosas de una manera que alguien pueda entender...

Me gustaria saber que ventajas y desventajas ven a estas opciones, bueno
casi descarto aca leer HQL complejas y entender que pasa, pero si a alguien
le parece que eso es lo mejor bueno, se puede discutir (aprontense para
responder si micro-optimizar y dejar algo imposible de mantener es una
estrategia correcta :))

Gustavo.

--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a