仅继承子级MappedSuperclass而不继承父级MappedSuperclass类

时间:2019-05-20 23:53:13

标签: hibernate multiple-inheritance

我有一个基类B。

@MappedSuperclass class B{}

@MappedSuperclass class D1 extends B{} //class D1 is really big
@MappedSuperclass class D2 extends B{} //class D2 is really big
@MappedSuperclass class D3 extends B{} //class D3 is really big
......
@MappedSuperclass class D10 extends B{} //class D10 is really big

我需要NewD1,NewD2,NewD3 ..NewD10,所有扩展D1..D10减去B。

现在我需要创建一个新类 NewD类扩展D但不扩展B {} //这里我想扩展D减去B 有人可以建议我该如何解决这个问题?

不幸的是,@ Mohannad的建议不起作用,因为我大约有10个类继承了B。

我已经尝试或考虑了以下内容。 -将D级和B级分开。 -现在创建NewD扩展D扩展B //但这不会编译,因为不允许多重继承。

2 个答案:

答案 0 :(得分:0)

这在Java中是不可能的。您可以控制D&B吗?

如果您愿意,我的建议是颠倒关系。使D为基类,然后使B从D继承,然后您的NewD类可以从D继承但没有B。

答案 1 :(得分:0)

我最终使用了一种变通方法,因为对此没有希望的AFAIK。

我已经在数据库表中创建了对应于NewD1,NewD2,NewD2 ..NewD10的虚拟列(在@MappedSuperclass类B {}中定义)。

我之所以喜欢这样做,是因为我认为在表中具有虚拟列比复制所有代码要好。