sqlgrailsgrails-ormggts

Grails joinTable query issue


I have a User domain and a Role domain and a working joinTable coded on the User side as

static hasMany = [ roles: Role ]
...
static mapping = {
    table 'user_data'
    id column: 'employee_number', name: 'employeeNumber', generator: 'assigned', type: 'int'
    version false
    sort 'lastName'

    roles joinTable: [ name: 'user_role' ]

}

I am trying to query the database to pull all users with a security officer role with

def roleInstance = Role.find { name == 'security_officer' }
def secList = User.findAll("from User as u where u.roles = :roleInstance", [roleInstance:roleInstance]) 

But I am getting the error

Class: com.microsoft.sqlserver.jdbc.SQLServerException
Message: The value is not set for the parameter number 1.

What am I doing wrong?


Solution

  • I figured it out with a bunch of guess and checking.

     def roleInstance = Role.findByName("security_officer")
     def query = User.where { 
         roles { 
             id == roleInstance.id 
         } 
     }
     def securityOfficerList = query.list()