逆向工程中的Hibernate Tools“Duplicate class”错误

时间:2013-07-11 12:40:44

标签: sql-server eclipse hibernate hibernate-tools

我正在尝试使用Hibernate Tools对SQL Server 2005进行逆向工程,并且出现了一个奇怪的错误:

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 个答案:

答案 0 :(得分:13)

开发用户通常可以访问具有类似表的多个数据库模式。 生成工具尝试为所有这些数据库生成输出,这会导致重复的类名称(即使您要求生成ddl)。

添加'reveng'设置并将输出限制为一个数据库架构。

还从所选的“出口商”中添加必要的参数。有些是必要的,但概述中未说明这一点。

Configure with reveng.xml

Add necessary variables

答案 1 :(得分:4)

我能够通过创建“hibernate.reveng.xml”来避免错误,其中我排除了“sys”和“INFORMATION”模式,并且只包含“dbo”模式。

答案 2 :(得分:1)

作为继续Daniil Shevelev的回答(这对我有用)为了排除架构添加新的reveng.xml 然后选择新的,然后在下一个屏幕上单击下一步 - 然后单击按钮上的刷新(需要一些时间来获取模式)然后站在相关的方案上并将其排除 see picture here