grails alias projection criteria-api

Grails Proyecciones de criterios en la tabla unida



alias projection (2)

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 este es el resultado deseado:

CarName WheelName Car1 Wheel1 Car1 Wheel2 Car2 Wheel3

En este caso, harías 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]]

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]]

Tengo un problema con el creador de criterios de Grails, quiero hacer una proyección en una columna que está en una tabla que está en una relación de uno a muchos con el ejemplo de la tabla padre:

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

o algo similar existe? Creo que es un problema básico con alias


¿qué hay de hacer solo?

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

¿O me estoy perdiendo algo?