關於解決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,即可完成

 這時候在創建數據庫表結構時就是按照實體類的創建順序來了。

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM