Критерии Grails группового объекта - PullRequest
1 голос
/ 05 октября 2011

Пример группировки по названию зон:

def result = User.createCriteria().list{

     projections {
          roles  {
               zones{
                    groupProperty("name")
               }
          }
     }
}

, но предположим, что я хочу получить "id" или другие атрибуты.Дело в том, что я хочу, чтобы объект представлял группу, а не строку «name».

result.each{ println it.customFuncion() }

«zone» - это атрибут hasMany, а затем я не могу сгруппировать группу самостоятельно.Что должно быть сделано, но не работает:

def result = User.createCriteria().list{

     projections {
          roles  {
               groupProperty("zones")
          }
     }    
}

Возможно ли это?Спасибо, ребята!

1 Ответ

0 голосов
/ 05 октября 2011

используйте hql для сложных запросов:

def result = User.executeQuery("select u.id, zone.name from User as u inner join u.roles as role inner join role.zones as zone group by u.id, zone.name")

Затем вы можете получить доступ к столбцам результатов следующим образом:

result.each { row -> row[0] // u.id } // or access via defined column name

Представь, что я не знаю твоих настоящих названий коллекций hasMany.

...