Grails Criterios de proyecciones en la tabla combinada

Tengo un problema con grails criterios generador, quiero hacer una proyección sobre una columna en una tabla que está en relación de uno a muchos relación con los padres de la tabla de ejemplo:

Car.createCriteria() { 
   projections { 
     property('name') 
     property('wheels.name')//???? 
   }

   join 'wheels' 
   //or wheels {} ???
}

o algo similar existe? Creo que es básico propblem con los alias de

OriginalEl autor csviri | 2011-05-05

2 Kommentare

  1. 21

    Estoy asumiendo las siguientes clases de dominio:

    class Car {
      String name
      static  hasMany = [wheels : Wheel]
    }
    
    class Wheel {
      String name
      static belongsTo = [car : Car]
    }

    También asumo que esta es la salida deseada:

    CarName WheelName
    Car1    Wheel1
    Car1    Wheel2
    Car2    Wheel3

    En este caso, usted tendría que hacer esto:

    void testCarProjectionItg() {
      def car1 = new Car(name: 'Car1').save()
      def car2 = new Car(name: 'Car2').save()
    
      def wheel1 = new Wheel(name: 'Wheel1')
      def wheel2 = new Wheel(name: 'Wheel2')
      def wheel3 = new Wheel(name: 'Wheel3')
    
      car1.addToWheels wheel1
      car1.addToWheels wheel2     
      car2.addToWheels wheel3
      wheel1.save()
      wheel2.save()
      wheel3.save()
      car1.save()
      car2.save()
    
      println Wheel.withCriteria {
        projections {
          property('name')
            car {
              property('name')
            }
        }       
      }
    }
    
    --Output from testCarProjectionItg--
    [[Wheel1, Car1], [Wheel2, Car1], [Wheel3, Car2]]

    Yo preferiría una consulta HQL en este caso:

    println Wheel.executeQuery("select car.name, wheel.name from Car car inner join car.wheels wheel")
    --Output from testCarProjectionItg--
    [[Car1, Wheel1], [Car1, Wheel2], [Car2, Wheel3]]
    muy bonito! me ayudó tremendamente minutos antes de una demo!

    OriginalEl autor David Betts

  2. 9

    lo que trata de hacer sólo:

    Car.createCriteria().list() { 
        createAlias("wheels","wheelsAlias")
        projections { 
            property('name') 
            property('wheelsAlias.name')
        }
    }

    O me estoy perdiendo algo?

    OriginalEl autor Gil

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...