有没有办法按照它们的顺序获取列 在Java类中声明,还是以其他方式指定顺序?
我正在使用映射工具ant任务在sql文件中为我的类生成DDL。
答案 0 :(得分:7)
不,JPA的每个实现都可以按照它认为合适的顺序自由排列生成的DDL中的列,并且通常程序员无法控制它 - 例如:Hibernate使用alphabetical order,但DataNucleus由于非标准注释,允许指定column position。遗憾的是,OpenJPA没有提供指定列排序的机制。
我之前遇到过类似的问题,我的客户的数据库指南要求列中的某个排序,我的JPA提供商生成了不同的订单。解决方案?我们编写了一个文本处理Java程序,给定生成的DDL作为输入,重新排序代码中的列,使其满足指南并作为输出生成带有修改后的DDL的新文件;该程序是从Ant任务运行的。不是很好,但从实际的角度来看,这是我们可以采取的最佳解决方案。