我让hbm2ddl为我创建表(出于开发目的),列与类中字段的顺序相反。
如何使它按照类的相同顺序创建列?
我认为Java类不存储字段的顺序,因此Hibernate根本不知道源中的顺序是什么(如果我考虑更复杂的情况,这似乎是合乎逻辑的)。
但是,我至少可以要求Hibernate将PK和FK列作为第一列吗?
Hibernate 4.0.0 (JBoss为7.1.2) MySQL 5.1.x
发布于 2012-09-15 13:49:49
Hibernate团队表示,这是一个已知限制,不可能设置订单。但是在生产中使用Hibernate时不应该依赖hbm2ddl,它是非常有限的,例如它可以添加列,但不能删除它。相反,人们通常使用LiquiBase、FlyWay或DbDeploy等工具创建DB迁移,这给您提供了更多的灵活性和对模式更新的控制。
要描述这种方法有什么帮助:假设您有一个UAT环境,并且您刚刚更新了模式--您想要向现有列添加null约束。使用hbm2ddl,这是不可能的,您将强制您的QAs从头开始重新创建数据库。使用上面描述的工具,您需要添加一个SQL文件,这些工具将运行这个新脚本,它分别更新模式。您还可能希望设置hbm2ddl=verify,以确保当前的DB模式是最新的,反之亦然- Hibernate映射是正确的。
https://stackoverflow.com/questions/12433998
复制相似问题