Я недавно сделал что-то очень похожее, я использовал абстрактную фабрику. На самом деле Вы видите фундаментальное понятие здесь:
Фабрики
Для любого то, кто сталкивается с этой проблемой с Начальной загрузкой Spring 2
пружинной начальной загрузкой по умолчанию, использовало, в спящем режиме 5.3.x версия, я добавил следующее свойство в своем pom.xml
<hibernate.version>5.4.2.Final</hibernate.version>
, и ошибка закончилась. Причина ошибки уже объяснена в сообщениях выше