我有一个类ClassA映射到TableA。我也有一个映射,它有一个EntityA的实体名称。Hibernate映射继承
现在,我需要在TableA的ClassA之间创建另一个名为EntityATwo的映射,但略有不同。
尽管我可以复制粘贴EntityA到EntityATwo的映射,但要维护这一点非常困难。
因此,我的问题是,我该如何创建EntityATwo的映射,其中我只声明EntityATwo和EntityA之间的不同,而映射的其余部分则来自EntityA。
感谢, 弗朗茨
我有一个类ClassA映射到TableA。我也有一个映射,它有一个EntityA的实体名称。Hibernate映射继承
现在,我需要在TableA的ClassA之间创建另一个名为EntityATwo的映射,但略有不同。
尽管我可以复制粘贴EntityA到EntityATwo的映射,但要维护这一点非常困难。
因此,我的问题是,我该如何创建EntityATwo的映射,其中我只声明EntityATwo和EntityA之间的不同,而映射的其余部分则来自EntityA。
感谢, 弗朗茨
我不知道一个办法直接做到这一点。但经你的允许,我可以详细说明。
在我们的代码,我们通常喜欢一个Java类映射到一个语义(我们更愿意与比选中字符串编译检查类工作)。因此,我们将映射到两个类而不是将类两次映射到具有不同实体名称的表。 我们将有:
您不必重复了。你从语义上获得了一些东西。
另一种可能性是在Java类使用注解,只对共同映射。在Hibernate中,注释可以被xml映射覆盖(或完成)。所以我想你可以只覆盖xml中的相关部分,并且你不会有重复。
请随时详细说明一些:-) 我想我可以有两个类映射到同一个表。但是,我仍然认为EntityATwo地图与EntityA地图的地图几乎相同,只是略有不同。 谢谢 – 2009-09-03 10:09:59
@Franz我编辑着重于您的评论。它更清楚吗?休眠站点已关闭,所以我无法提供链接。 – KLE 2009-09-03 10:15:00
好吧,所以你有ClassA1和ClassA2都从Java端扩展ClassA。 ClassA映射到TableA(例如)。此外,ClassA1和ClassA2映射到TableA。 但是,您如何准确指定ClassA1和ClassA2继承ClassA的通用映射? 谢谢 – 2009-09-03 10:41:18
+1对于精确的问题和良好的交互 – KLE 2009-09-03 11:09:50