Разделение класса сущности Hibernate на иерархию классов

У меня есть таблица с именем Product и соответствующий класс сущности Hibernate под названием Product.java.

Существуют различные типы и подтипы Продуктов, которые различаются двумя столбцами в таблице, которые называются "тип" и "подтип". В приложении концептуально это разные вещи. Например, в идеале должна быть иерархия классов Product, но, к сожалению, много кода было реализовано в одном классе модели сущностей с условиями if и случаями переключения.

Я ищу способы реорганизовать это в иерархию классов. Я предложил несколько вариантов, но я не уверен, что это лучший способ сделать это, и я жду отзывов и предложений.

  1. Таблица иерархии классов в Hibernate: Это хорошо, но похоже, что это решение должно было быть принято, когда код был написан впервые. Теперь, так как класс Product уже реализован и является ядром проекта, я не думаю, что будет нелегко следовать этому подходу. Кроме того, основным преимуществом этого подхода является возможность задавать разные поля в разных подклассах. Это не очень хорошо для нас, потому что объект Product должен вести себя по-разному только в приложении, но переменные / данные, хранящиеся в строке, требуются для всех подклассов "Products". Могу ли я иметь один родительский класс, который определил все переменные сущности, а подклассы вообще не имеют переменных?

  2. Состав: Создайте классы для разных типов Продуктов, но каждый из этих классов будет содержать переменную Product. Это может работать до некоторой степени, поскольку я могу хранить весь общий код в самом классе Product, но перенести весь настроенный код в эти классы.

Я мог бы использовать некоторые отзывы / предложения относительно того, что лучший способ пойти дальше и реорганизовать этот класс.

0 ответов

Другие вопросы по тегам