Spring Data JPA 自动建表字段顺序优化

夙愿已清 提交于 2019-12-22 18:37:27

【推荐】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;
}

代码片段

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!