7

有没有办法按照它们在 Java 类中声明的顺序获取列,或者以其他方式指定顺序?

我正在使用映射工具 ant 任务在 sql 文件中为我的类生成 DDL。

4

1 回答 1

7

不,JPA 的每个实现都可以按照它认为合适的顺序自由排列生成的 DDL 中的列,并且通常程序员无法控制这一点 - 例如:Hibernate 使用字母顺序,但 DataNucleus 允许指定列位置由于非标准注释。遗憾的是,OpenJPA 没有提供指定列排序的机制。

不久前我遇到了类似的问题,我的客户的数据库指南要求在列中进行某种排序,而我的 JPA 提供程序产生了不同的顺序。解决方案?我们编写了一个文本处理 Java 程序,将生成的 DDL 作为输入,对代码中的列进行重新排序,使其符合准则,并生成一个带有修改后的 DDL 的新文件作为输出;该程序是从 Ant 任务运行的。不漂亮,但从实际的角度来看,这是我们可以召集的最佳解决方案。

于 2013-06-04T21:38:01.870 回答