生成Hibernate HBM XML文件和实体类从现有的数据库架构(Generating Hibe

2019-09-18 12:41发布

怎样才能从现有的DB模式休眠HBM XML文件和实体类?

Answer 1:

我使用休眠的工具有很多乐趣(在其网站上给出的例子)。 下面,我给我具体的,先进的和有趣的(我认为)使用情况的详细信息。


事实上,我正面临着我们的大项目一个有趣的挑战(接近800个表,数据库驱动的团队)

  • 新表将保持到达,这样我就可以从数据库中生成它们(使用HibernateTools和生产注明实体)(我们实际上正在使用另一个进程现在...)
  • 但mosts表并不是新的,我已经有了Java实现和的.hbm.xml。 与担保不破坏任何两个人都有时从他们最初产生的DB修改,所以这是不可能重新生成它们。 我需要迁移的实体,改变尽可能少的(也就是说,只有注释)!

    • 这需要的是快还,因为我们典型的老实体有大约100名成员(自己的数据库列,再加上从反向外键来实体集合!)。

      注:两个实体无法生成完整的构造函数编译,他们打破了256点的参数限制! 不过,我虽然这个构造是无用的,无论如何,谁能够记得的256个参数的顺序,所以我删除它。

    • 我也想迁移我的设置仿制者(二传手我没有费心现在除外)。

为映射迁移,我使用休眠的工具(定制根据需要,模板和代码)如下:

  • 信息的来源是的.hbm.xml文件,与hibernate.cfg.xml文件

    注:我必须先提取的hibernate.cfg.xml,更换弹簧豆用于包含列表。 但是,这也为数据库工具,如松鼠,那可以用它来使HQL完成有用...

  • 所产生的输出是X2.java文件(X.java类,在同一个包中)仅包含字段,吸气剂和说明(没有设置器或构造)(通用集)

我将使用Eclipse编译器(错误“复制...”)仔细检查我的编辑,使其更快,更容易出错(错误是不是一种选择,我们有许多生产客户!)。 对于每一个迁移类,我就从产生到现有类复制:

  • 改变persistence.cfg.xml使用类代替的.hbm.xml的
  • 切割和类名前粘贴@Entity
  • 剪切和粘贴现有油田毕竟组图场,只删除现有的那些有编译错误(结果是,我现在有通用字段集)
  • 现有的setter方法后剪切和粘贴所有的getter(这是该类的其余部分)
  • 打开大纲视图,仅显示公共动态方法不是以“集”,按字母顺序排序
  • 检查每一个没有错误的吸气剂(调查,如果出事了,或者它已经下跌以来...)
  • 以下大纲视图,只考虑错误的方法,用于顺序中的每个吸气剂:删除该方法的第二个实例,其注释复制到第一实例(使用导航大纲视图)(的类中的方法的顺序被保留,这一直是CVS历史上的重要,特别是在证明的迁移并没有打破自己的代码不信,它已经打破之前!)。
  • ......一些细节留待进一步讨论...

对于好奇,这个月我们已经接近200个注明实体:-)。 一个典型的100场的实体,需要约30分钟的工作进行迁移。 只有300小时留下来完成这个cut'n膏其余600个实体! ;-)



Answer 2:

您应该使用Hibernate逆向工程工具这一点。 见Hibernate逆向工程工具的文档以获取更多信息。

这不是我清楚如何产生的JPA注解的类,但你可能要考虑不使用hbm.xml文件中了,如果这是一个新的项目,有利于注解。



Answer 3:

我会建议休眠工具



Answer 4:

Netbeans的具有生成配置文件,注释的文件和更多的功能



文章来源: Generating Hibernate hbm xml files & entities classes from existing DB schema
标签: hibernate hbm