vendredi 11 septembre 2015

How can I write this relatively simple criteria query involving three domains?

Just for background, let us have these three domain classes:

class Group {
    Long id
    Person person
}

class Person {
    Long id
    Country country
    String name
}

class Country {
    Long id
}

So, with these classes in mind, I am given a Group object's id as well as a Country object's id. I would like to get the list of Person objects based on these two.

It seems relatively simple, but I am new to criteria queries and so I am struggling to figure out what I am doing wrong. This is what I have so far:

def c = Group.createCriteria()
def names = c.list (order: "asc") {
    createAlias('person', 'p')
    createAlias('p.country', 'c')
    and {
        eq ('c.id', Long.valueOf(countryId))
        eq ('id', groupId)
    }
    projections {
        property('p.name')
    }
}

Of course, this is wrong as it is throwing errors. Can someone please let me know what I am doing wrong?

Thanks for your help!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire