 <p>I think the following is a much more natural way to describe your domain</p> <pre><code>class Location { String name static hasMany = [preparedToWork: Assessor] } class Assessor { //Some Properties static belongsTo = [Location] static hasMany = [preparedToWork: Location] } </code></pre> <p>Then you can retrieve all of the assessors who are prepared to work in a certain location with</p> <pre><code>Assessor.executeQuery( "from Assessor a join a.preparedToWork l where l.id = ?", [locationId]) </code></pre>