Conozcamos LIQUidFORM
miércoles, diciembre 3, 2008 at 5:49PM LIQUidFORM siginifica Language Integrated QUeries For Object Relational Mapping, es una libreria java que simplifica mucho la realizacion de consultas JPA sin necesidad de usar tanto Strings. Esta libreria es un DSL inspirado en LINQ que evita problemas comunes al escribir consultas.
¿Alguna vez haz hecho una consulta JPA y luego te ha tocado cambiar el nombre de una clase o metodo? ¿te ha tocado ir y buscar cada una de las consultas (pura Strings) y reemplazar uno a uno los cambios que hicistes?. Obviamente las cadenas no pueden ser refactorizadas por ningun IDE.
Para entenderlo mejor miremos el siguiente ejemplo:
Tenemos una consulta JPA comun y corriente:
String myQuery = "select p from Persona where p.nombre like 'mario%' ";
con LIQuidFORM seria de la siguiente manera:
Persona p = LiquidForm.use(Persona.class,"p");
String myQuery = select(p).from(Persona.class).where(like(p.getNombre(),"mario%").toString();
Al final solo seria cuestion de:
List< Persona > personas = entityMgr.createQuery(myQuery).getResultList();
Notan las ventajas? Tenemos una consulta full refactorizable, type-safe y que sigue siendo igual de compacta que la consulta original. Esta es la mejor forma que he visto para hacer consultas JPA, mucho mejor que la API de criteria actual de hibernate y muchisimo mejor que la api de criteria que traera JPA 2.0 que no se entiende nada y es super compleja.
Este proyecto tiene una licencia Apache 2 y pueden encontrar mas ejemplo y descargarlo desde:
http://code.google.com/p/liquidform/
j2ee 
Reader Comments