Hibernate Tools "Duplicate class" ошибка при обратном инжиниринге
Я пытаюсь выполнить обратный инжиниринг SQL Server 2005 с помощью Hibernate Tools и получаю странную ошибку:
org.hibernate.cfg.JDBCBinderException:
Duplicate class name 'CheckConstraints' generated for
'org.hibernate.mapping.Table(e2rm_maintenance_development2.sys.check_constraints)'.
Same name where generated for
'org.hibernate.mapping.Table(e2rm_maintenance_development2.sys.check_constraints)'
Duplicate class name 'CheckConstraints' generated for
'org.hibernate.mapping.Table(e2rm_maintenance_development2.sys.check_constraints)'.
Same name where generated for
'org.hibernate.mapping.Table(e2rm_maintenance_development2.sys.check_constraints)'
3 ответа
Пользователь разработки обычно имеет доступ к нескольким схемам базы данных с похожими таблицами. Инструмент Generation пытается сгенерировать выходные данные для всех этих баз данных, что приводит к дублированию имен классов (даже если вы запрашиваете генерацию ddl).
Добавьте настройку мести и ограничьте вывод одной схемой базы данных.
Также добавьте необходимые параметры из выбранных "Экспортеров". Некоторые из них необходимы, но это не указано в обзоре.
Мне удалось избежать этой ошибки, создав файл "hibernate.reveng.xml", в котором я исключил схемы "sys" и "INFORMATION" и включил только схему "dbo".
В качестве продолжения ответа Даниила Шевелева (это то, что у меня сработало), чтобы исключить схему, добавьте новый reveng.xml, затем выберите новый и на следующем экране нажмите кнопку "Далее" - затем нажмите "Обновить" на кнопке (требуется некоторое время, чтобы получить схемы) тогда встаньте на соответствующую схему и исключите ее