Mostrando las entradas con la etiqueta JDO. Mostrar todas las entradas
Mostrando las entradas con la etiqueta JDO. Mostrar todas las entradas

sábado, 7 de enero de 2012

Escribiendo sql más fácil con Querydsl


No les pasa que cuando escriben hql les da miedo de equivocarse en el nombre de alguna propiedad o algo que pueda hacer explotar la aplicación? Cuando escriben consultas con criterios de hibernate, no les pasa que no saben como se deben hacer ciertas cosas o tienen que mirar el manual? No les parece poco intuitiva la API de Critera de hibernate?

Si a todo contestaste que si Querydsl es para vos. Querydsl es un framework el cual permite construir consultas type-safe muy similares a Sql para multiples formas de acceder a datos JPA, JDO y SQL.

En lugar de escribir consultas en texto  lo escribimos con este dsl de forma fluida y segura.

Que ventajas tiene usar Querydsl?


  • Nos puede ayudar la IDE a escribir nuestras consultas, porque son propiedades. 
  •  Contamos con la seguridad por tipo 
  • Si refactorisamos nos permite refactorisar la consulta y si se rompe alguna consulta no compila. 
  • Es más fácil escribir consultas complejas 
  • Podemos escribir SQL o usarlo con Hibernate y también con MongoDB


Veamos un ejemplo de consulta:

query.from(customer)
    .where(customer.firstName.eq("Bob").and(customer.lastName.eq("Wilson")));


query.from(cat)
    .innerJoin(cat.mate, mate)
    .leftJoin(cat.kittens, kitten)
    .list(cat);


query.from(cat)
    .leftJoin(cat.kittens, kitten)
    .on(kitten.bodyWeight.gt(10.0))
    .list(cat);


query.from(customer)
    .orderBy(customer.lastName.asc(), customer.firstName.desc())
    .list(customer);


Se integra con Hibernate, maven, y también con Spring Data JPA. Además lo podemos usar con MongoDB y también con Scala.

Es de licencia Apache 2.

Dejo un video:



Dejo links:
http://www.querydsl.com/
http://www.querydsl.com/documentation
http://blog.mysema.com/2010/07/querying-hibernate-with-querydsl.html
http://blog.mysema.com/2010/11/mongodb-with-querydsl.html

lunes, 13 de julio de 2009

Que es ORM ?

Mapeo Objeto Relacional (ORM) ,en otras palabras persistir los objetos Java en una base de datos relacional ha tenido su mayor cambio recientemente, gracias, en parte a la proliferación de métodos
avanzados que intentan hacer esta tarea mas fácil .
Entre estas tecnologías están los Entity Beans 2.x , TopLink , Hibernate , JDO , y también JDBC con DAO. Con muchas alternativas incompatibles , el grupo Java EE experto toma inspiración de estos frameworks
populares y creo el api de persistencia de Java (JPA) , el cual se puede usar desde aplicaciones Java EE o SE.
En pocas palabras JPA , usa el modelo de programación POJO para la persistencia. A pesar de que este modelo esta incluido en la especificación EJB 3 , JPA puede ser usado fuera de un contenedor
EJB , y esta es la forma que será usada en este articulo . “Plain Old Java Objects” ( POJO ) ejecutándose en una aplicación Java SE.

Como trabaja JPA ?
Inspirado en los frameworks como Hibernate , JPA usa anotaciones para mapear objetos a la base de datos relacional. Estos objetos , usualmente llamados entidades, no tienen nada en común con los Entity Beans 2.x . Las entidades JPA son clases
POJOs, no extienden de ninguna clase y no implementan ninguna interface.
Usted no necesita archivos descriptores XML para hacer los mapeos . Si uno se fija en el API ( java doc ) uno observara que esta compuesto de pocas clases e interfaces.
La mayoría del contenido de el paquete javax.persitence son anotaciones. Con esto explicado , veremos el siguiente ejemplo de código:

@Entity
public class Customer {
@Id
private Long id;
private String firstname;
private String lastname;
private String telephone;
private String email;
private Integer age;
// constuctors, getters,
setters
}