【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
JPA 自动建表字段顺序优化
1、表字段顺序和实体类定义字段顺序一致
原理:复制一个 hibernate 包下的 PropertyContainer 类,修改其中 persistentAttributeMap 的类型,TreeMap 修改为有序的 LinkedHashMap,在下次类加载时,会优先加载我们定义的类。
2、自定义继承类字段顺序
原理同上就不说了。
一般我们的实体类会继承一个父类,父类中有 id,createTime,createUser,...,deleteFlag等字段。但是又不想让这些字段都在表字段最前边,或者说 id 在最前边就好了,其他字段放最后边就行。
打断点,跟代码,找到了 InheritanceState,同样覆写下
修改前:id,createTime,createUser,...,deleteFlag,其他字段
修改后:id,其他字段,createTime,createUser,...,deleteFlag
if (elements.size() > 6 && "id".equals(elements.get(0).getPropertyName()) && "deleteFlag".equals(elements.get(5).getPropertyName())) {
ArrayList<PropertyData> tempElements = new ArrayList<PropertyData>();
tempElements.add(elements.get(0));
tempElements.addAll(elements.subList(6, elements.size()));
tempElements.addAll(elements.subList(1, 6));
elements = tempElements;
}
来源:oschina
链接:https://my.oschina.net/AmosWang/blog/3145946