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).

Добавьте настройку мести и ограничьте вывод одной схемой базы данных.

Также добавьте необходимые параметры из выбранных "Экспортеров". Некоторые из них необходимы, но это не указано в обзоре.

Настроить с помощью reveng.xml

Добавьте необходимые переменные

Мне удалось избежать этой ошибки, создав файл "hibernate.reveng.xml", в котором я исключил схемы "sys" и "INFORMATION" и включил только схему "dbo".

В качестве продолжения ответа Даниила Шевелева (это то, что у меня сработало), чтобы исключить схему, добавьте новый reveng.xml, затем выберите новый и на следующем экране нажмите кнопку "Далее" - затем нажмите "Обновить" на кнопке (требуется некоторое время, чтобы получить схемы) тогда встаньте на соответствующую схему и исключите ее смотри картинку здесь

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