表创建期间的OpenJPA转发映射工具订单列规范

时间:2011-03-29 14:41:04

标签: jpa-2.0 openjpa

我们在persistence.xml中设置了以下属性:

<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>

如果我理解正确,这就是告诉OpenJPA MappingTool它应该在数据库中生成适当的表,如果为相应的管理实体找到那么。

我未能弄清楚是否有任何方法可以指定MappingTool在获取对EntityManager的引用后仍然存在的列的排序

MappingDefaults没有提供这样的属性(至少我找不到它),实际上唯一的方法是重新实现OpenJPA API的一部分以支持它。

该选项目前对我们来说不可行,我会询问有关如何指定列排序的任何想法或指导 - 如果有的话。

我们的环境包含以下堆栈:

  • OpenJPA 2.0.1
  • JDK 1.6.23
  • Spring 3.0.5
  • Maven 2.2.1
  • IBM DB2 9.7 Express-C

我也有点惊讶,谷歌只有少数此类问题。

2 个答案:

答案 0 :(得分:0)

如果特定表的列顺序对您的应用程序很重要,请不要使用SynchronizeMappings。

答案 1 :(得分:0)

我发现,即使您再次为同一模式执行映射工具,也不保证列的顺序。 我也在使用IBM DB2,在这里我必须确保在每个实例中创建的表完全相同。 所以我使用映射工具生成了一次DDL脚本,如果我的数据模型发生了变化,我只会更新它。