SpringDataJpa實體類中屬性順序與數據庫中生成字段順序不一致的問題

自己寫的代碼覆蓋hibernate中的代碼

翻了翻源碼發現,很多地方都是使用LinkedHashMap或者是List來傳輸Entity里面的fields,于是感覺Hibernate應該是考慮到使用Entity里面定義的fields的順序來實現建表語句里的表字段順序的。?
  于是就一步步跟蹤下去,終于在一個地方發現了一個問題:org.hibernate.cfg包下的PropertyContainer類在取fields的時候是使用TreeMap來保存的,于是試著改了下,將這個里面的所有TreeMap改成了LinkedHashMap,編譯通過,打包,測試。?
終于,我們期待已久的結果出來了:建表語句里面的字段順序和Entity里面的fields的順序一致了。

在自己的項目中新建一個

org.hibernate.cfg的包

新建類PropertyContainer。

根據原理,如果用戶自定義的類與Jar中同名,會優先使用 用戶自定義的類。這樣就可以覆蓋原來的Hibernate的行為

有的版本,是替換4個地方

將TreeMap替換為
LinkedHashMap

重新編譯之后,數據庫中的字段順序就與實體類的順序一樣

這樣處理的之后,尤其在Excel數據導入的時候,會非常的方便核對數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83515.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件架構期末復習

題型 填空題 20分,2分/空,10空 選擇題 30分,2分/題,15題 簡答題 30分,6分/題,5題(概念+分析) 案例分析題 20分,5個小題(綜合) 分值:體系結構、設計模式各占50% 考試內容 體系結構 SA基礎(SA03PPT):SA概念、SA與軟件過程(階段)的關系、SA核心概念模型(重要…

Oracle ADG 日常巡檢指南

一、基礎狀態檢查 數據庫角色與模式 SELECT db_unique_name, open_mode, database_role, switchover_status FROM v$database;預期狀態: 主庫:OPEN_MODEREAD WRITE, DATABASE_ROLEPRIMARY備庫:OPEN_MODEREAD ONLY WITH APPLY, DATABASE_ROLE…

【MV】key_moments 與 continuous_timeline的編排權衡

一、編排順序: key_moments → continuous_timeline* 建議使用順序:key_moments → continuous_timeline ?? 兩者關系 key_moments:從continuous_timeline中精選出來的重點(約11個關鍵時間點)continuous_timeline:完整的時間軸(37個片段,覆蓋每句歌詞)?? 實際編…

Tomcat線程模型

目錄 1 Linux I/O模型 2 Linux I/O模型分類 3 Tomcat支持的I/O模型 4 Tomcat I/O模型選型 5 Tomcat NIO實現 6 Tomcat異步IO實現 1 Linux I/O模型 I/O:在計算機內存和外部設備之間拷貝數據的過程程序通過cpu向外部設備發出讀指令,數據從外部設置拷貝至內…

最新Spring Security實戰教程企業級安全方案設計實現

最新Spring Security實戰教程(十七)企業級安全方案設計 - 多因素認證(MFA)實現 1. 前言2. 為什么需要多因素認證? 傳統認證的風險MFA的核心優勢常見多因素認證實現方案 3. 多因素認證的核心原理4. 系統架構與流程設計…

十九、【用戶管理與權限 - 篇一】后端基礎:用戶列表與角色模型的初步構建

【用戶管理與權限 - 篇一】后端基礎:用戶列表與角色模型的初步構建 前言準備工作第一部分:回顧 Django 內置的 `User` 模型第二部分:設計并創建 `Role` 和 `UserProfile` 模型第三部分:創建 Serializers第四部分:創建 ViewSets第五部分:注冊 API 路由第六部分:后端初步測…

大話軟工筆記—架構的概要設計

架構的概要設計是在需求工程分析成果的基礎之上對整個系統進行的頂層規劃,重點是確定設計規范(理念、主線等),從大的范圍和高度對業務進行規劃和設計,架構概要設計的成果“業務架構圖”,是后續各階段設計的…

Flink CDC —部署模式

一、Standalone 模式 獨立模式是Flink最簡單的部署模式。本簡短指南將向您展示如何下載最新穩定版本的Flink,安裝和運行它。 您還將運行一個示例Flink CDC作業,并在web UI中查看它。 1、準備 Flink在所有類似UNIX的環境中運行,即Linux、Mac…

day029-Shell自動化編程-計算與while循環

文章目錄 1. read 交互式初始化變量1.1 案例-安裝不同的軟件1.2 案例-比較大小 2. 計算2.1 bc2.2 awk2.3 expr2.4 let2.5 案例-計算內存的空閑率2.6 案例-檢查域名過期時間和https證書過期時間 3. 循環3.1 循環控制語句3.2 for循環-c語言格式3.3 while循環3.3.1 案例-猜數字3.3…

華為云Flexus+DeepSeek征文 | 基于華為云ModelArts Studio打造AingDesk AI聊天助手

華為云FlexusDeepSeek征文 | 基于華為云ModelArts Studio打造AingDesk AI聊天助手 引言一、ModelArts Studio平臺介紹華為云ModelArts Studio簡介ModelArts Studio主要特點 二、安裝AingDesk應用AingDesk應用介紹下載地址安裝AingDesk工具 三、開通DeepSeek-R1-0528商用服務訪問…

深度解析Git錯誤:`fatal: detected dubious ownership in repository` 的根源與解決方案

如果你是在使用自己的移動硬盤(U盤)操作項目時遇到的這個問題直接執行git config --global --add safe.directory X:/path即可,只要你的移動硬盤(U盤)沒有病毒就不會有安全問題。 深度解析Git錯誤:fatal: d…

基于Spring Boot的校園社區平臺設計與實現

目錄 一.🦁前言二.🦁開源代碼與組件使用情況說明三.🦁核心功能1. ?算法設計2. ?Thymeleaf模板引擎3. ?MyBatis Plus框架4. ?部署項目 四.🦁演示效果1. 管理員模塊1.1 用戶管理1.2 瀏覽管理員首頁1.3 論壇管理1.4 校園咨詢管理…

Java 8 Map 新增方法詳解

Java 8 Map 新增方法詳解 1. getOrDefault 源碼: default V getOrDefault(Object key, V defaultValue) {V v;return (((v get(key)) ! null) || containsKey(key))? v: defaultValue;}作用:安全獲取值,若key不存在則返回默認值 示例&…

山東大學 2025 web數據管理期末復習總結

SDU-2025年-Web數據管理期末總結 考試題型 填空 :都來自于PPT中名詞解釋簡答題:需要背一些公式。 根據L老師上課提及的重點一共總結了87問題。 文章目錄 SDU-2025年-Web數據管理期末總結考試題型第1講 緒論此章不考 第2講 網絡爬蟲技術2.1 爬蟲是什么…

Spring框架的設計模式

Spring 框架深度集成了多種經典設計模式,這些模式支撐了其核心功能(如IoC、AOP)的實現,以下是關鍵模式及其應用場景的梳理: 1、工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式…

git報錯fatal: 遠端意外掛斷了

git報錯fatal: 遠端意外掛斷了 報錯詳細內容 mr.mbogon tinymce % git add . mr.mbogon tinymce % git commit -m init [master c6cfc2a] init1 file changed, 2 insertions(), 1 deletion(-) mr.mengbogon tinymce % git push 枚舉對象中: 241, 完成…

Windows 下安裝 NVM

NVM 下載 NVM 在工作中,你可能遇到過某個項目需要高版本的 node 才能運行,而有的項目可能只支持低版本的 node,此時就可以借助于一些 Node 版本管理工具,比如 nvm(Node Version Manager),幫助…

AI知識補全(十七):通用人工智能AGI是什么?

名人說:博觀而約取,厚積而薄發。——蘇軾《稼說送張琥》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 上一篇:AI知識補全(十六):A2A - 谷歌開源的agent通信協議是什么? 目錄 一、什么是AGI?概念解析1. 什么是AGI2. AGI與現有AI的本質區別二 、AGI的核…

Spring Cloud Gateway 介紹

什么是Spring Cloud Gateway? Spring Cloud Gateway 是 Spring Cloud 社區官方推出的一個基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.x 的下一代 API 網關(API Gateway)解決方案。它旨在為微服務架構提供統一、簡潔、高效的…

slam--高斯分布

教程 博主解釋 高斯分布 高斯分布(Gaussian Distribution),又稱正態分布(Normal Distribution),是描述連續型隨機變量分布規律的一種概率分布。 (1) 一維高斯分布 μ:均值/數學期望&#xff0…