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管理更改。

posted @ 2017-10-18 19:18  masterx0  阅读(2388)  评论(0编辑  收藏  举报