1

我有两个具有一对多关系的域类。我们称它们为 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 拆分为每个属性一个的单独表,但这会导致大量表使维护数据库更加乏味
4

0 回答 0