Mysql 为什么MyEclipse';s Hibernate反向工程在映射某些表时创建多个类?

Mysql 为什么MyEclipse';s Hibernate反向工程在映射某些表时创建多个类?,mysql,hibernate,reverse-engineering,myeclipse,Mysql,Hibernate,Reverse Engineering,Myeclipse,我的MYSQL数据库中有一个表,它没有主键,但在两列上有一个唯一的键。当使用MyEclipse的Hibernate反向工程工具为该表创建映射时,它会生成两个类,一个以表本身命名,另一个以“Id”后缀命名。似乎大多数有用的方法都是在Id类中结束的,因此似乎您要实例化并保存它以持久化数据。我可以理解这样一个事实,即创建Id类是为了表示表/映射对象中的唯一行,但是将其拆分为两个类有什么用,然后使用非Id后缀类又有什么用呢 我的同事认为,只需一个类就可以实现同样的功能,并嘲笑对这些没有主键的表使用反向工

我的MYSQL数据库中有一个表,它没有主键,但在两列上有一个唯一的键。当使用MyEclipse的Hibernate反向工程工具为该表创建映射时,它会生成两个类,一个以表本身命名,另一个以“Id”后缀命名。似乎大多数有用的方法都是在Id类中结束的,因此似乎您要实例化并保存它以持久化数据。我可以理解这样一个事实,即创建Id类是为了表示表/映射对象中的唯一行,但是将其拆分为两个类有什么用,然后使用非Id后缀类又有什么用呢


我的同事认为,只需一个类就可以实现同样的功能,并嘲笑对这些没有主键的表使用反向工程。一、 另一方面,假设MyEclipse开发人员比我聪明得多,并且有很好的理由这样做。有吗?

我的朋友,你想得太多了。这些工具实际上不是来自MyEclipse团队,而是来自Hibernate工具项目(JBoss,Hibernate的开发者)

这是一个编程工具,无法猜测所有内容。这对于简单的东西来说是非常好的,但是有时候,它不会产生你所需要的东西

通常需要id类来表示复合主键(使用多个属性的键)。它使用组件类Hibernate概念

还可以稍微调整生成器选项


在你的情况下,最好按照你同事说的去做。创建自己的实体类。

在反向工程文件中:

   <table schema="public" name="yourtable">
            <primary-key>
                <!-- generator may not be necessary for mysql -->
                <generator class="increment"></generator> 
                <key-column name="column_name_of_primary_key" />
            </primary-key>
        </table>

我在Eclipse中针对teradata实例运行该工具时遇到了类似的问题。我有几个视图要反转,它们在一个模式中。我正在使用以下命令生成AcxiomDataId类:

<table catalog=".*" schema="U01TKE_GRPR_RADMT_VW" name="F_ACXM_MBR" class="AcxiomData">
    <primary-key>
        <generator class="increment"></generator>
        <key-column name="MBR_UNIQ_KEY" property="memberUniqKey" />
    </primary-key>
</table>

但是从table元素中删除schema和catalog属性时,我没有得到AcxiomDataId类:

<table name="F_ACXM_MBR" class="AcxiomData">
    <primary-key>
        <generator class="increment"></generator>
        <key-column name="MBR_UNIQ_KEY" property="memberUniqKey" />
    </primary-key>
</table>


不知道为什么。我面临同样的问题。我认为当表中没有任何键时,它会生成两个类。否则,如果表中有任何键,则它只生成一个键

至少对我来说,在表中添加主键后,它只生成一个表示表的类。如果我删除主键,那么它将生成两个类


旧线程,但我认为对某人有用。

您必须进入数据库,检查是否已将字段设置为主键,然后是hibernate反向工程文件,不再创建多个类