• 关于解决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,即可完成

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



  • 相关阅读:
    引用 Geoprocessing调用ArcToolBox工具使用总结
    MySQL权限改观何时生效
    Ubuntu下安装*.bin挨次
    创立初始的MySQL权限
    MySQL的日期和光阴范例
    MySQL存取节制, 阶段1:连接证明
    让Linux操作零碎可以Mount NTFS分区
    Citrix进级XenDesktop桌面虚拟化产物
    如何在两台MySQL数据库间完成同步
    MySQL的数字
  • 原文地址:https://www.cnblogs.com/zhukf/p/11934445.html
Copyright © 2020-2023  润新知