使用JPA(休眠),我正在尝试实现以下关系,并且想知道其他人是否对最佳方法有任何建议:
@Entity(name="SOMETHING")
public class Something {
List<MetaDatum> metaData;
}
@Entity(name="SOMETHING_COMPLETELY_DIFFERENT")
public class SomethingCompletelyDifferent {
List<MetaDatum> metaData;
}
@Entity(name="META")
public class MetaDatum {
}
基本上是n
完全不相关的对象,每个对象都有一组公共子对象。在对象模型中易于实现,而在数据库中则麻烦得多!
我敢肯定这一定是很普遍的,但是我很难找到任何示例实现,因为我真的不知道正确的搜索词。
谢谢你的时间!
看起来像是您和()实体中字段@OneToMany
注释的案例。你从那里去取决于。metaData
Something
SomethingCompletelyDifferent
SCD
由于Something
和SCD
没有共同祖先,因此不能简单地使关系成为双向关系并使用联接列。
有几种解决方案,因此您必须根据实际用例来决定。
如果您不需要遍历MetaDatum
到其父实体,则只需坚持单向关系即可。该关系将通过休眠与连接表进行映射。
进行分离,MetaDatum1
并MetaDatum2
使其各自的父对象具有双向关系。
为两个父实体创建一个共同的祖先,其中包含与 MetaDatum
创建两个实体,每个实体都封装了一个List<MetaDatum>
,专门针对Something
与和SCD
实体的双向关系
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句