2011-02-19 3 views
1

私はgrailsを使用していますが、異なるドメイン間での結合や順序付けに適切な構文を見つけることができません。たとえば、以下の例では、ロンドンから来たすべての著者のタイトルでソートされた書籍データのページを取得したいと考えています。私はcreateCriteriaを使うことを好みますが、必要に応じて別のテクニックを使います。 複数のドメインクラスにわたるGrailsのフィルタリングとオーダリング

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

のようなものと同等である本のドメインクラスのリストを取得することです達成したいです[criteria objects] [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クエリ言語(HQL)

関連する問題