我需要扩展一个具有相同特征的实体,而不使用抽象类。
我可以编写如下代码吗?
@Entity
@Table(name="ABC")
@SequenceGenerator(sequenceName="SEQ_ABC",name="idGenerator",allocationSize=1)
public class Abc {
.. // define members
}
@Entity
@Table(name="EX_ABC")
public class ExAbc extends Abs {
.. // define extras..
}
提前谢谢
是的,这个可以正常工作,没有任何问题。不过你应该看看继承注释。 http://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual/jpa_overview_mapping_inher.html#jpa_overview_mapping_inher_single
问题是什么:您有一个表“Abc”,其中包含 field1,filed2;然后你有 ExAbc,其中包含“Abc”字段和另外的字段 3。
现在,如果您从数据库角度思考,该系统应该如何处理这两个类?将它们放入一个表中,让“Abc”类型的所有行的 field3=null 吗?或者将它们放入两个不同的表中?或者将公共字段放在一个表中并为附加字段创建第二个表?
每个解决方案都有其优点和缺点,您可以在我发布的链接中阅读,然后根据您的情况来决定哪种方法是最好的方法。
(我认为默认是连接策略,但是我不认为每个数据库都是如此)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)