使用注释扩展hibernate实体

时间:2011-02-10 12:43:48

标签: java hibernate entity extend

我需要扩展一个具有相同特征的实体,而不使用抽象类。

我可以编写类似下面的内容吗?

@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..
}
事先提前

2 个答案:

答案 0 :(得分:17)

是的,这个没有任何问题。不过,您应该查看inheritance annotation.

问题是什么:你有一个表“Abc”,其中包含field1,filed2;然后你有ExAbc,其中包含“Abc”字段和adition field3。 现在,如果你从数据库的角度思考,那么这个系统应该对这两个类做些什么呢?将它们放入一个表中,对于所有“Abc”类型的行,field3 = null?或者将它们分成两个不同的表格?或者将公共字段放在一个表中,并为附加的字段3创建第二个字段?

每个解决方案都有其优点和缺点,您可以阅读我发布的链接,然后根据您的情况决定哪种方式最好。

(默认我认为是加入的策略,但我并不指望每个数据库都是如此)

答案 1 :(得分:0)