我正在使用Eclipselink作为我的持久性提供程序。有没有办法指定列在数据库中的显示顺序?数据库中的列顺序与我的实体中的属性顺序不匹配。据我所知,按字母顺序排列hibernate order列,但我找不到Eclipselink的任何规范。
答案 0 :(得分:2)
EclipseLink根据映射的权重对映射进行排序,从而对列进行排序。通常,除了确保Baisc映射是第一个,并且关系映射是第二个之外,不设置权重。
如果您希望使用DescriptorCustomizer,可以设置映射的权重。您还可以将描述符设置为不按权重排序映射,因此将使用它们指定的顺序(setShouldOrderMappings(false))。
public void MyCustomizer implements DescriptorCustomizer {
public void customize(ClassDescriptor descriptor) {
descriptor.getMappingForAttributeName("name").setWeight(2);
}
}
最近在2.2开发中对映射的权重进行了一些更改,现在映射按名称在相同的权重级别内排序。