mysql - 为什么 MyEclipse 的 Hibernate 逆向工程在映射某些表时会创建多个类?

标签 mysql hibernate reverse-engineering myeclipse

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

我的同事认为你可以只用一个类来完成同样的事情,并且 mock 对这些没有主键的表使用逆向工程。另一方面,我假设 MyEclipse 开发人员比我聪明得多,并且有充分的理由这样做。有吗?

最佳答案

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

这是一个无法猜测所有内容的编程工具。它非常适合注释良好的简单内容,但有时,它不会生成您所需要的内容。

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

也可以稍微调整生成器选项。

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

关于mysql - 为什么 MyEclipse 的 Hibernate 逆向工程在映射某些表时会创建多个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/306722/

相关文章:

php - 不写IP地址连接WAMP服务器

mysql链接4个表和一些条件

hibernate - 如何使用环境变量配置 Hibernate

java - HIbernate @DynamicUpdate 不适用于 JPA Entitymanager

sockets - Golang 中的套接字调试器

mysql - MySQL中的 "ADD KEY"和 "ADD INDEX"有什么区别?

mysql - 如何选择last和last but one记录

java - @Transactional 创建一个新的引用脏对象,即使它没有被修改

java - 使用调试信息反编译 C 代码?

c++ - 英特尔引脚 : how to detect realloc size