Estoy intentando cargar Padres distintos usando Criterios en Grails. La consulta es la siguientecómo obtener resultados distintos usando proyecciones y criterios
Consulta:
def criteria = Parent.createCriteria();
results = criteria.list(max:params.max, offset:params.offset){
projections{ groupProperty('id') }
children{
books{
like('title',"%book")
}
}
order("id","asc")
}
clases de dominio
class Parent {
String name
static hasMany = [children:Child]
static constraints = {
}
}
class Child {
String name
Parent parent
static belongsTo = [parent:Parent]
static hasMany = [books:Book]
static constraints = {
}
}
class Book {
String title
Child child
static belongsTo = [child:Child]
static constraints = {
}
}
Pregunta: Soy incapaz de conseguir filas primarias distintas.
Otros enfoques adoptados y sus resultados: I donot saber por qué groupProperty no está funcionando. He intentado distinto en proyecciones en lugar de groupProperty y tampoco es fructífero !. si uso criteria.listDistinct en lugar de criteria.list entonces soy capaz de obtener distintas filas principales, pero el enfoque anterior requiere obtener totalCount de la consulta adicional para la paginación. Por lo tanto estoy muy intersted en conseguir filas primarias distintas utilizando criteria.list
Gracias de antemano
¿Cuál es tu objetivo final? ¿Estás tratando de obtener una lista de los padres que tienen hijos que tienen libros que coinciden con un título específico? – Pat
en realidad quiero cargar a todos los padres, únicos, aquellos que tienen hijos con libros que tienen el título '% M%'. Y el problema es agrupar propiedad. Los resultados no contienen padres distintos. Si es difícil de entender consulta vuelva a colocar mencionada consulta par con siguiente "hijos { niños { como ('nombre'," Pau% ") } } orden (" id", "ASC") – Rehman
relaciones: Parent: Child [1: N] and Child: Book [1: N] – Rehman