PostGreSQL 結合 Hibernate 在項目中的使用小結


由於項目需要,現將原來的底層MySQL數據庫替換為對空間擴展支持更完善的PostGreSQL數據庫。

大概整理了下轉化的一些要點。

表對應:
1、MYSQL 的 ID 唯一鍵 對應 PostgreSQL中的 serial字段。
2、varchar 都一樣,注意字符數。
3、int float double 都有對應的字段
4、字段如果有 “`”,去掉。
5、PostgreSQL 是大小寫區分的。默認導進去的sql語句都會轉為小寫。
6、datetime 對應 TIMESTAMP ,date,time 分別都有對應。 PostgreSQL 有 默認 DEFAULT now()。

可能出現的幾個錯誤:
1、postgres默認安裝好像不支持hibernate自增長。會提示hibernate_sequence不存在。
執行:

CREATE SEQUENCE hibernate_sequence INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1;

ALTER TABLE table_name ALTER COLUMN id SET default nextval('hibernate_sequence');

同時在hibernate配置文件中設置Id的生成方式為 identity(前提是數據庫中id設置了sequence),即可創建postgres的hibernate自增長支持

 

2、Postgres另一個小問題上,它的"serial"數據類型(等價於MYSQL的auto_increment)會造成一個"sequence"。

如果從mysql中批量導入數據,會存在 自動 department_id_seq 下的 START 1 不自動增加。

解決方法,直接用pgadmin管理更改。


免責聲明!

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



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