Buscar
Social
Ofertas laborales ES
« String vs. StringBuffer vs. StringBuilder | Main | Artículo sobre la especificación de Servlets 3.0 »
miércoles
dic032008

Conozcamos LIQUidFORM

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/

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.