Secciones

Interactuar con la base de datos en Grails

Inicio » Artículos » Interactuar con la base de datos en Grails
La categoría del artículo es
Escrito el 16 September 2009, 12:37


Lo ideal para cualquier desarrollador de aplicaciones sería poder despreocuparse de los problemas que en ocasiones suponen recuperar información de la base de datos. Para ello, Grails utiliza GORM como una capa que se superpone a un framework de persistencia de datos tan robusto como es Hibernate.

Gracias a GORM, el desarrollador dispone de una sería de métodos dinámicos para obtener los datos de nuestras clases de dominio. Si por ejemplo necesitáramos conocer cuantos usuarios libros del año 2000 tenemos en nuestra biblioteca, no tendría más que escribir Libro.countByAnyo(2000). Incluso podríamos encadenar criterios de búsqueda para por ejemplo obtener el número de libros del año 2000 cuya editorial fuera Apress de la siguiente forma: Libro.countByAnyoAndEditorial(2000,“Apress”)

Por supuesto, el desarrollador no ha tenido que implementar ninguno de estos métodos y ha sido GORM quien los pone a su disposición de forma dinámica.

Si necesitáramos obtener un listado de esos libros podríamos utilizar la siguiente llamada: Libro.findAllBy(2000,“Apress”), que nos devolvería una lista con todas las instancias recuperadas de la base de datos que cumplan las condiciones pasadas en los parámetros.

GORM dispone de más métodos que vais a poder encontrar en la web http://grails.org/GORM. Sin embargo, es posible que en alguna ocasión necesitemos realizar consultas complejas a la base de datos a las que GORM no puede llegar. Para eso aparecen las consultas con el lenguaje propio de Hibernate, HQL y Criteria, un API propio de Hibernate.


¿Qué te parece GORM?

  1. # elias, Apr 27, 02:49 AM:

    Hola tengo una duda, como puedo ejecutar estas consultas grails que mencionas, las tengo que incluir en una clase de dominio o cual es la forma adecuada, agradesco tu respuestan

  2. # Fran García, Apr 27, 11:03 AM:

    Pues eso es una decisión del propio desarrollador, pero lo puedes incluir en los controladores, en los servicios o bien, y yo considero que estaría mejor, preparar funciones en las clases de dominio que realicen estas consultas con la base de datos, de tal manera que si por cualquier motivo tienes que cambiar la consulta, sepas que tienes que modificar la clase de dominio.

  3. # fredre, Apr 21, 07:14 PM:

    puedes darme un ejemplo de consulta HQL en grails desde la consulta hasta la salida, estoy algo perdido con lsa consultas hql en grails.gracias

your_ip_is_blacklisted_by sbl.spamhaus.org.