I am trying to reverse engineer a SQL Server 2005 using Hibernate Tools and am getting a strange error:

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‌​)'
有帮助吗?

解决方案

A development user has typically access to multiple database schema s with similar tables. The Generation tool tries to generate output for all those databases and this results in duplicate class names (even if you ask for ddl generation).

Add a 'reveng' setup and limit the output to one database schema.

Also add necessary parameters from the selected 'Exporters'. Some are necessary, but this is not indicated in the overview.

Configure with reveng.xml

Add necessary variables

其他提示

I was able to avoid the error by creating "hibernate.reveng.xml" in which I excluded "sys" and "INFORMATION" schemas and only included "dbo" schema.

as a continue to Daniil Shevelev answer (this is what worked for me ) in order to exlude schema add new reveng.xml then choose new and on the next screen click next -then click refresh on the buttom (takes some time to get the schemas) then stand on the relevant scheme and exclude it see picture here

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top