我让hbm2ddl为我创建表(用于开发目的),列的顺序与类中的字段相反.
如何使它按照与类相同的顺序创建列?
我认为Java类不存储字段的顺序,因此Hibernate根本不知道源中的顺序是什么(如果我考虑更复杂的情况,这似乎是合乎逻辑的).
但是,我能否至少要求Hibernate将PK和FK列作为第一列?
Hibernate 4.0.0(JBoss AS 7.1.2)MySQL 5.1.x.
Hibernate团队表示这是一个已知的限制,并且无法设置顺序.但是在生产中使用Hibernate时不应该依赖hbm2ddl,这是非常有限的,例如它可以添加列,但它不能删除它.相反,人们通常使用LiquiBase或FlyWay或DbDeploy等工具创建数据库迁移,这使您可以更灵活地控制架构更新.
要描述这种方法有何帮助:假设你有一个UAT环境而你刚刚更新了模式 - 你想在现有列中添加非空约束.使用hbm2ddl是不可能的,您将强制您的QA从头开始重新创建数据库.使用上述工具,您需要添加一个SQL文件,这些工具将运行这个分别更新模式的新脚本.您还可能需要设置hbm2ddl = verify以确保当前数据库架构是最新的,反之亦然 - Hibernate映射是正确的.
| 归档时间: |
|
| 查看次数: |
4130 次 |
| 最近记录: |