我们在persistence.xml中设置了以下属性:
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
如果我理解正确,这就是告诉OpenJPA MappingTool它应该在数据库中生成适当的表,如果为相应的管理实体找到不那么。
我未能弄清楚是否有任何方法可以指定MappingTool在获取对EntityManager的引用后仍然存在的列的排序?
MappingDefaults没有提供这样的属性(至少我找不到它),实际上唯一的方法是重新实现OpenJPA API的一部分以支持它。
该选项目前对我们来说不可行,我会询问有关如何指定列排序的任何想法或指导 - 如果有的话。
我们的环境包含以下堆栈:
我也有点惊讶,谷歌只有少数此类问题。
答案 0 :(得分:0)
如果特定表的列顺序对您的应用程序很重要,请不要使用SynchronizeMappings。
答案 1 :(得分:0)
我发现,即使您再次为同一模式执行映射工具,也不保证列的顺序。 我也在使用IBM DB2,在这里我必须确保在每个实例中创建的表完全相同。 所以我使用映射工具生成了一次DDL脚本,如果我的数据模型发生了变化,我只会更新它。