• 关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题


    今天在公司的项目开发中,遇到一个问题:

    后端对象实体类中写入字段顺序与数据库中的存储顺序不一致。

    仔细观察到数据库中的表字段的排序方式是按照拼音字母的顺序abcdef......来存储的

    而我的实体类中的表结构顺序却不是这样的

    经过查阅资料,总结到了解决这个问题的方法:

    一、在application.yml配置中添加数据库根据实体类自动创建数据库表的配置(这里数据库采用MySQL数据库)

    二.实体类字段顺序与数据库不一致解决办法

    在org.hibernate.cfg包下的PropertyContainer类在取fields的时候是使用TreeMap来保存的,

    以下是TreeMap的基本介绍

    public class TreeMap<K,V>
    extends AbstractMap<K,V>
    implements NavigableMap<K,V>, Cloneable, Serializable
    

    TreeMap中的元素默认按照keys的自然排序排列。

    对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序

    所以猜测是TreeMap的原因导致数据库表字段没有按照实体类设计而来

    在项目结构中新建一个与之前相同名的文件,修改TreeMap为HashMap,即可完成

     这时候在创建数据库表结构时就是按照实体类的创建顺序来了。



  • 相关阅读:
    C++中static_cast和dynamic_cast强制类型转换
    Oozie-
    Spring Boot- 用idea新建spring boot web项目
    Spring Boot- 设置拦截打印日志
    Storm- 使用Storm实现词频汇总
    Storm- 使用Storm实现累积求和的操作
    HTTP- 头部信息
    Python- 文件读写
    JQuery- JQuery学习
    Javascript- Javascript学习
  • 原文地址:https://www.cnblogs.com/zhukf/p/11934445.html
Copyright © 2020-2023  润新知