我有两个具有一对多关系的域类。我们称它们为 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 相关。
我的问题如下:有没有办法确保在域类级别只能从 OneClass 中选择具有属性 = versionControl 的 ManyMetadataClass 中的行?
提前致谢
一些观察:
- 我可以在控制器和视图级别实现这一点,但这涉及大量代码并且更难确保在 OneClass 中没有存储不正确的数据
- 我可以将 ManyMetadataClass 拆分为每个属性一个的单独表,但这会导致大量表使维护数据库更加乏味