1

私の最新の発明は、世界中のレストランでワッフルをリアルタイムで追跡できるシステムです。

これを達成するために、私Waffleは多くの を持っている を持っていCondimentsます。は現在オンになっているを持ち、多くの が異なる に変換された に属しています。presentWaffleWaffletable numberRestaurantNamelanguage

技術的には、すべての where を取得してWaffle、のwhereWaffle.shape == 'square'で並べ替え、 trueかどうかを表示する必要があります。RestaurantNameWaffle.Restaurant.Names.language == 'en'Condiment.present

Restaurant.Names = ['language':'en', 'name':'ワッフルハウス'],
                   ['language':'fr', 'name':'Le Waffle House'],
                   ['language':'de', 'name':'Das Waffle House']
正方形でフィルタリング
============================

(昇順)
    Ⅴ
Restaurant Table# シロップバターマヨ
-------------------------------------------------- -------
デニーズ42 YYN
デニーズ 27 NNN
デニーズ11YYN
IHOP 10 YNN
IHOP 7 NNN
ワッフルハウス 10 YYY

クラスの簡略化されたバージョンは次のとおりです。

class Condiment {
    int condimentId
    boolean present
    Waffle waffle
    static belongsTo = [Waffle]
}

class Waffle {
    int waffleId
    int tableNumber
    String shape
    Restaurant restaurant
    static belongsTo = [Restaurant]
    static hasMany = [condiments:Condiment]
}

class Restaurant {
    int restaurantId
    static hasMany = [waffles:Waffle, names:Name]
}

class Name {
    String name
    String language
    static hasMany = [restaurants:Restaurant]
}

可能であればGORMでこれを行いたいのですが、HQLも受け入れられます。これは Grails 2.3 の場合です。Waffle世界には何百万もの が存在するため、これはページ付けされていることに注意してください。

4

1 に答える 1