2015-11-17 2 views
0

I Grais 2.4.3 У меня естьВ Горм Критерии: Сбор фильтр внутри домена по свойству

class DomainFather { 
    Set domainSon = [] 
} 

И

class DomainSon { 
    Date dataCreated 
} 

И я пытаюсь в качестве критерия Горм:

def c = DomainFather.createCriteria() 
def data = c.list { 
    createAlias("domainSon", "ds") 
    projections { 
     max("ds.dataCreated", "ds") 
    } 
} 

Очевидно, что не работает, но я понятия не имею, как я должен это делать. Любая помощь ценится.

ответ

2

Проблема в том, что вы не установили связь между классами домена. Попробуйте это:

class DomainFather { 

    static hasMany = [sons: DomainSon] 

} 

Тогда вы будете иметь возможность использовать запрос:

def c = DomainFather.createCriteria() 
def data = c.list { 
    projections { 
     sons { 
      max("dataCreated") 
     } 
    } 
} 
+0

В реальном проекте я сделал, но я не знал о проекции {сыновей {. –

+0

А, ок. В Grails/GORM обычно псевдоним не нужен. Сказав это, необходим псевдоним, когда вам нужно использовать другой тип соединения, например, левое внешнее соединение. http://emmanuelrosa.com/articles/gorm-for-sqladdicts-select-clause/ –

Смежные вопросы