Нашел это в документации Grails. Он не совсем использует метод list (), однако он не позволяет указывать eager в ваших классах доменов, поэтому вы можете выполнять выборку по своему усмотрению. Я все еще не уверен на 100%, получит ли это то, что вы хотите, но это самая близкая вещь, которую я смог найти.
Запрос с нетерпением извлечения в
раздел о нетерпеливых и ленивых извлечениях мы
обсуждали как декларативно указывать
выборка, чтобы избежать N + 1 SELECT
проблема. Однако это также может быть
достигается с помощью запроса критерия:
def criteria = Task.createCriteria()
def tasks = criteria.list{
eq "assignee.id", task.assignee.id
join 'assignee'
join 'project'
order 'priority', 'asc'
}