使用注释扩展hibernate实体

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

我可以编码下面的代码吗?

@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.. } 

提前thx

是的,这个没有任何问题。 但是,您应该查看inheritance注释。

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

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

(默认我认为是加入策略,但是我不会指望每个数据库都这样)

看到

看来你必须有一个单独的抽象类。 并且可能没有技术障碍。