Groovy критерии запроса - PullRequest
       13

Groovy критерии запроса

0 голосов
/ 18 октября 2010

У меня есть модель домена, которая выглядит следующим образом

Category 1 ------- * Type 1 ------- * Expense

Или по-английски «У расхода есть тип, и каждый тип принадлежит категории».Я хочу написать запрос Criteria, который найдет все расходы в определенной категории.Я пробовал и это

Expense.withCriteria {
    eq('type.category', someCategoryInstance)
}

, и это

Expense.withCriteria {
    type {
        eq('category', someCategoryInstance)
    }    
}

Но ни один из них не работает, что мне не хватает?

Обновление

Iменя попросили показать доменные классы, вот они:

public class Category {

    String description
    static hasMany = [types: Type]  
}

public class Type {

    String description
    static hasMany = [expenses: Expense]
    static belongsTo = [category: Category]
}

public class Expense {

    static belongsTo = [type: Type]

    Date date
    String description
    float amount
}

1 Ответ

1 голос
/ 18 октября 2010

В зависимости от того, как объявляются ассоциации, таблица типов может не присоединяться к запросу.Вы можете явно указать ему присоединиться с join в ваших критериях.

Expense.withCriteria {
    join('type')
    type {
        eq('category', someCategoryInstance)
    }    
}
...