Sto provando a caricare genitori distinti usando i Criteri in Grails. La query è come seguendocome ottenere risultati distinti usando Proiezioni e Criteri
Query:
def criteria = Parent.createCriteria();
results = criteria.list(max:params.max, offset:params.offset){
projections{ groupProperty('id') }
children{
books{
like('title',"%book")
}
}
order("id","asc")
}
classi di 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 = {
}
}
Domanda: non sono in grado di ottenere righe padre distinti.
Altri approcci adottati ei relativi risultati: I donot sapere perché groupProperty non funziona. Ho provato distinto in proiezioni anziché groupProperty e non è fruttuoso anche !. se uso criteria.listDistinct invece di criteria.list quindi sono in grado di ottenere righe padre distinte ma un approccio precedente richiede di ottenere totalCount dalla query aggiuntiva per l'impaginazione. Quindi io sono molto interessato ai ottenere righe padre distinti utilizzando criteria.list
Grazie in anticipo
Qual è il tuo obiettivo finale? Stai cercando di ottenere un elenco dei genitori che hanno figli che hanno libri che corrispondono a un titolo specifico? – Pat
in realtà voglio caricare tutti i genitori, unici, quelli hanno figli con libri con titolo '% M%'. E il problema è groupproperty. I risultati non contengono genitori distinti. Se è difficile capire di query quindi sostituire suddetta interrogazione pari con seguente "i bambini { bambini { come ('name'," pau% ") } } ordine (" id", "ASC") – Rehman
relazioni: Parent: Child [1: N] e Child: Book [1: N] – Rehman