将Hibernate实体类拆分为类层次结构

时间:2015-10-29 03:22:25

标签: java hibernate oop inheritance composition

我有一个名为Product的表和相应的名为Product.java的Hibernate实体类。

产品的不同类型和子类型由表中的两列区分,称为" type"和"子类型"。在应用程序中,从概念上讲它们是不同的东西。理想情况下,理想情况下应该是Product类层次结构,但不幸的是,在一个实体模型类中使用if条件和switch case实现了大量代码。

我正在寻找将其重构为类层次结构的方法。我提出了一些选择,但我不相信它们是最好的方法,我正在寻找反馈和建议。

  1. Hibernate的每个类层次结构:这很好,但看起来这个决定应该是在代码首次编写时做出的。现在,由于Product类已经实现并且是项目的核心,我认为遵循这种方法并不容易。此外,这种方法的主要优点似乎是能够在不同的子类中指定不同的字段。这对我们来说并不合适,因为Product对象在应用程序中的行为应该不同,但是" Products"的所有子类都需要存储在行中的变量/数据。我可以有一个已定义所有实体变量的父类,而子类根本没有变量吗?

  2. 组合:为不同类型的产品创建类,但每个类都包含一个Product变量。这可能在某种程度上起作用,因为我可以将所有公共代码保留在Product类本身中,但将所有自定义代码移动到这些类。

  3. 我可以使用一些反馈/建议来确定最佳方法,然后重构该课程。

0 个答案:

没有答案