Search code examples
grailsgrails-orm

How to retrieve domain object with criteria


Domain Model:

class Member {
static belongsTo = [login: Login]

I want to retrieve Member object, knowing id of login. Following this i try something like:

    def c = Member.createCriteria()
def mem = c.get {
login {
    eq('id', login)
}

But doesn't work. How to retrieve object properly in Grails controller?


Solution

  • You have a lot of possibilities to do that. For example, you can use

    def login = Login.read(id)
    def member = Member.findAllByLogin(login)
    

    Or you should probably change your criteria by:

    def c = Member.createCriteria()
    def mem = c.list() {
        login {
            eq('id',id)
        }
    }
    

    Or you can use a Where query:

    def yourLogin = Login.read(id)
    def member = Member.where { login == yourLogin }
    

    Of course, it depends of your needs.

    Hope that helps