Observatorio de Grails 
  • Inicio
  • Actualidad
  • Artículos
  • Tutoriales
  • Eventos
  • Foro
  • Acerca de
SQ29 – Avanzado – ¿Eres un móvil o un PC? SQ31 – Intermedio – Parámetros web multivaluados
ene 25

SQ30 – Básico – Forzar la ordenación de las asociaciones

publicado por Enrique Medina Montenegro

0 comentarios
1.170 visitas
(3 votos, media: 5,00)

Enrique Medina Montenegro

Twitter  |  LinkedIn

Con más de 14 años de experiencia en el mundo de las TI, donde comenzó desarrollando aplicaciones de escritorio en Delphi o Visual Basic, este Ingeniero en Informática por la Universidad de Alicante (1991-1996) ha ido perfilando su actividad profesional hacia las arquitecturas J2EE, donde siempre ha seguido muy atento, e incluso colaborado en ocasiones, con proyectos open-source como MyFaces, Spring, Hibernate, Groovy o Grails. Ocupando puestos desde Programador Junior hasta Arquitecto Senior de Soluciones, Enrique ha sido testigo de cómo ha ido evolucionando la tecnología en torno al desarrollo de aplicaciones web, adquiriendo un conocimiento y experiencia que le permiten evaluar con detalle las necesidades de cada proyecto y aplicar las herramientas que maximizan su productividad. Actualmente, Enrique se ha especializado en el framework de desarrollo Grails, y ejerce la Dirección Técnica de proyectos basados, entre otras, en esta tecnología.

¿Sabías que… puedes forzar la forma en que se ordenan los elementos de una asociación?

Mediante este mecanismo de configuración en GORM el usuario se ahorra la necesidad de tener que estar ordenando los elementos cada vez que los consulta. Así, por ejemplo, si tenemos la siguiente clase del dominio:

class Factura implements Serializable {
    ....
    static hasMany = [lineas: LineaFactura]
    }
}

Cuando queremos obtener las facturas con sus líneas ordenadas, ¿cómo podemos conseguirlo? Podríamos pensar que ejecutando una consulta HQL como la siguiente:

def facturas = Factura.executeQuery("from Factura f inner join f.lineas l order by l.numLinea desc")

Sin embargo, esta consulta nos devolvería las facturas ordenadas por los números de sus líneas, no las líneas de cada factura ordenadas por número de línea. En realidad, lo que estamos esperando se consigue utilizando la configuración GORM en la propia clase Factura:

class Factura implements Serializable {
    ....
    static hasMany = [lineas: LineaFactura]

    static mapping = {
        lineas sort: 'numLinea', order: 'desc'
    }
}

Recuerda: Puedes forzar el orden de los elementos de las asociaciones de tu clase de dominio utilizando la configuración ‘mapping’ con los atributos ‘sort’ y ‘order’.

Del.icio.us Facebook LinkedIn Twitter

Escribir un comentario

Clic para cancelar respuesta.

Actualidad  Entradas relacionadas  si te ha interesado la entrada te proponemos otras lecturas relacionadas

  • jul05

    Problema de ordenación al customizar búsquedas (inglés)

    publicado por Enrique Medina Montenegro en Grails

    0 comentarios
    384 visitas
    (1 votos, media: 2,00)
  • jun07

    Plugin: Google Visualization API

    publicado por Carlos Rico Avendaño en Grails

    0 comentarios
    521 visitas
    (2 votos, media: 4,50)
  • jul02

    Vinculación de datos y asociaciones 1:M (inglés)

    publicado por Enrique Medina Montenegro en Grails

    0 comentarios
    341 visitas
    (2 votos, media: 5,00)

Comentarios recientes  Comentarios recientes

  • pedro luis hola como cargo imágenes de un archivo para mostrarlo en un reporte con los demás datos; en Reportes en Grails con iReport
    17/05/2012 a las 21:03

  • yo 123; en Clusterizar una aplicación Grails con EhCache (inglés)
    24/04/2012 a las 17:33

  • yo muy buebo; en Clusterizar una aplicación Grails con EhCache (inglés)
    24/04/2012 a las 17:21

Twitter  

preload preload preload

Síguenos en Twitter  |  Facebook
Inicio  |  Actualidad  |  Artículos  |  Tutoriales  |  Eventos  |  Foro  |  Acerca de

© 2010 Observatorio de Grails. Todos los derechos reservados.