このアプリケーションには、ゲームと練習の計画を持つことができるPlayerがあるため、抽象クラスPlanと2つの派生クラスGamePlanとPracticePlanを設計しました。データベースでは、派生クラスは「class」属性を持つ単一のテーブルに保存されます。
特定のプレーヤーでgetPlans()を使用すると、すべてのプランを取得できますが、ゲームまたは練習のプランのみを取得する方法を知りたいと思います。player.getPracticePlans()やPlayer.PracticePlans(player_id)のようなもの。以下は私たちのクラスです。
class Player {
String name
static hasMany = [ plans : Plan]
}
abstract class Plan {
}
class PracticePlan extends Plan{
}
class GamePlan extends Plan{
}
注:次のようなものを使用しようとしました:
def query = Player.where {
plans { class == "GamePlan" }
}
ただし、クラスは予約済みのキーワードであり、コンパイルされません。