Где функция обратного проектирования в Hibernate5?

Я обновляю старый проект с hibernate3 на hibernate5. Проект имеет зависимость от hbm2java (так называемый инструмент обратного проектирования). В старом проекте это выполнялось с помощью mvn hibernate3:hbm2java.

К сожалению, hbm2java в Hibernate5 нигде нет — ни в коде, ни в документации.

Что такое эквивалент Hibernate5 старого hbm2java? Или, если он больше не поддерживается, какая ближайшая альтернатива? Я готов полностью выйти из Hibernate, если это то, что нужно для выхода из Hibernate 3.


person Alex R    schedule 11.06.2017    source источник
comment
что ты уже испробовал? Вы уже пытались вытащить и собрать весь проект hibernate5 в локальном репозитории maven?   -  person Jan    schedule 13.07.2017
comment
Я попробовал mvn hibernate5:hbm2java и получил ошибку: [ОШИБКА] Не найден плагин для префикса 'hibernate5' в текущем проекте и в группах плагинов [org.apache.maven.plugins, org.codehaus.mojo], доступных в репозиториях [local ( C:\Users\xxxx.m2\repository), центральный (repo.maven.apache.org/ maven2)]   -  person Alex R    schedule 13.07.2017
comment
А до этого вы собирали проект hibernate5 из исходников с помощью mvn?   -  person Jan    schedule 13.07.2017
comment
Как указано в вопросе, я обновляюсь с hibernate3. Так что у меня не было проекта hibernate5. Это был проект hibernate3. И да, я построил его с mvn.   -  person Alex R    schedule 15.07.2017
comment
Я имел в виду, куда вы установили hibernate5? Это не в центре maven (как видно из вашей ошибки). Вы загрузили архив или клонировали последнюю версию из git?   -  person Jan    schedule 17.07.2017
comment
Вы можете использовать hibernate5 в качестве зависимости времени выполнения и использовать hibernate3 для генерации кода.   -  person user625488    schedule 17.03.2019
comment
Проверьте это jonamlabs.com/   -  person Manoj Reddy    schedule 02.09.2020


Ответы (2)


Предложение №1:

Вы можете использовать maven ant runner. Это может помочь.

mvn antrun:run@hbm2java

Если вы изменили шаблоны (см. документацию), то в pom.xml измените тег инструмента hibernate, чтобы он выглядел так:

<hibernatetool templatepath="src/the/path/to/the/directory/containing/pojo/directory">

Приведенный выше путь должен указывать на родительский каталог с именем pojo, содержащий ваши шаблоны.

Кроме того, если у вас есть собственный класс стратегии обратного проектирования, в pom.xml добавьте этот атрибут в тег jdbcconfiguration.

reversestrategy="fully.qualified.name.CustomDelegatingReverseEngineeringStrategy"

Ссылка на ресурс: Обратный инжиниринг инструментов Hibernate с использованием Maven

Я не проверял, но вы можете попробовать эту процедуру, используя версию Hibernate 5.X.


Предложение №2:

Эта проблема кажется критической в ​​версии Hibernate 5.x. Все рекомендуют использовать версию 4.3 для реверс-инжиниринга вместо версии 5.x.

Ссылка на ресурс: https://stackoverflow.com/a/37577315

Пошаговое руководство по использованию 4.3 вместо 5.1 с графическим представлением приведено здесь: http://o7planning.org/en/10125/using-hibernate-tools-generate-entity-classes-from-tables

Некоторые вопросы приведены ниже:

  1. Проблема с регистром в базе данных
  2. сопоставление типов
  3. фильтрация таблиц
  4. тег <schema-selection> не указан

Эти проблемы необходимо решать вручную (это всего лишь базовый XML), или вы можете использовать плагины Hibernate, которые предоставляют специализированный редактор. http://www.hibernate.org/30.html

Для правила обратного проектирования вы можете пройти это руководство: Глава 6 . Управление реверс-инжинирингом

person SkyWalker    schedule 13.07.2017

Последняя версия hibernate-maven-plugin — 4.3.1. .

Вы бы вышли из спящего режима 3, естественно используя спящий режим 4.3.1.

Похоже, задача hbm2java существует в исходниках последней версии hibernate: https://github.com/hibernate/hibernate-tools/blob/master/main/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java< /а>. Это то, что вы искали, не так ли? Таким образом, также должна быть возможность создать проект github hibernate5 в вашем локальном репозитории maven, а затем связать зависимости в ваших проектах pom.

Наконец, добавьте соответствующую задачу и цель в раздел выполнения.

person Jan    schedule 12.07.2017
comment
Код, который вы нашли, предназначен для задачи Ant с 2005 года, я не думаю, что он имеет отношение к рассматриваемой проблеме. - person Alex R; 13.07.2017
comment
Последний выпуск hibernate-tools выпущен в апреле этого года в версии 5.2.3. Но в любом случае вы, вероятно, правы, что anttask не имеет отношения к выполнению mvn. - person Jan; 13.07.2017