1対多の関係を持つ2つのドメインクラスがあります。それらをOneClassおよびManyMetadataClassと呼びましょう。
class OneClass {
// ... some variables
belongsTo = [version:ManyMetadataClass]
}
class ManyMetadataClass {
String attribute
int value
hasMany = [
OneClass,
AnotherSimilarToOneClass,
YetAnotherOneTypeClass
// ...
]
}
ManyMetadataClassは、OneClassと同様の多くの異なるドメインクラスの属性値のペアを格納することを目的としています。
前に述べたように、OneClassは「belongsTo」、つまり、ManyMetadataClassとの1:mの関係にある1です。ただし、ManyMetadataClass内の特定の属性値(attribute = versionControl)を持つ行のみがOneClassに関連します。
私の質問は次のとおりです。ドメインクラスレベルで、属性= versionControlのManyMetadataClassの行のみをOneClass内から選択できるようにする方法はありますか?
前もって感謝します
いくつかの観察:
- これはコントローラーおよびビューレベルで実現できますが、これには多くのコードが含まれ、OneClass内に誤ったデータが格納されていないことを確認するのは困難です。
- ManyMetadataClassを属性ごとに1つずつ別々のテーブルに分割することもできますが、これにより大量のテーブルが作成され、DBの保守がより面倒になります。