Фильтрация и упорядочение Grails в нескольких классах домена - PullRequest
1 голос
/ 19 февраля 2011

Я использую Grails, и у меня возникают проблемы с поиском подходящего синтаксиса для объединения и упорядочения в разных доменах.Например, учитывая приведенный ниже пример, я хотел бы получить страницу с данными книги, отсортированными по названию, для всех авторов, которые приехали из (например) Лондона.У меня есть предпочтение использовать createCriteria, но я буду использовать другую технику, если это необходимо.

class Location {
    String city
    static hasMany = [authors: Author]
}

class Author {
    String name
    static belongsTo = [location: Location]
    static hasMany = [books: Book]
}

class Book {
    String title
    static belongsTo = [author: Author]
} 

Чтобы уточнить, чего я хочу добиться, это получить список классов домена книги, эквивалентный чему-то вроде

Select Book.title
From Book
Inner Join Author
On Author.name = Book.authorName
Inner Join Location
On Location.city = Author.homeCity
Where Location.city = 'London'
Order by Book.title

Спасибо

1 Ответ

1 голос
/ 20 февраля 2011

Для создания более сложных запросов к базе данных вы можете использовать [критерии объектов] [1] или [Hibernate Query Language (HQL)] [2].Второй способ более мощный, но менее удобный.

[1]: http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.4.2 Критерии

[2]: http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.4.3 Hibernate Query Language (HQL)

...