怎样才能从现有的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的具有生成配置文件,注释的文件和更多的功能