在postgreSQL数据库上 SSH应用开发bug记录
发布时间:2020-12-13 17:58:44 所属栏目:百科 来源:网络整理
导读:前言 : 把之前开发好的项目从oracle数据库移植到postgreSQL上 项目中用到的技术:struts2 spring2.5 hibernate3.2 生成ID的策略用的是SEQUENCE 是知道了 oracle 和PostgreSQL 都支持SEQUENCE才进行安全迁移的 数据库版本 oracle10g postgreSQL8.2.3 下面就
前言 : 把之前开发好的项目从oracle数据库移植到postgreSQL上 项目中用到的技术:struts2 spring2.5 hibernate3.2 生成ID的策略用的是SEQUENCE 是知道了 oracle 和PostgreSQL 都支持SEQUENCE才进行安全迁移的 数据库版本 oracle10g postgreSQL8.2.3 下面就说 迁移过程中遇到的问题: 数据库定义类型和结构不同,手动建了几张表 如:表名 ERP2_TEST 序列SEQ_ERP2_TEST 字段 ID integer not null 字段 NAME character varying(20) 等等.... 建好表以及序列,没有在PostgreSQL上测试表 可以看到这里 表名 字段 序列都是大写的 一切认为OK了 就开始跑程序 bug1: org.postgresql.util.PSQLException: ERROR: relation " seq_erp2_test " does not exist 类似这样的错误 序列找不到 然后查看postgreSQL文档 和 网上前辈是否也处理过这样的问题 知道了一种 在PostgreSQL8.2版本以上 可以创建serial类型的字段 那么就开始重新键那张测试表 表名 字段 依旧大写,建好表后 PostgreSQL自动给生成了想要的序列 如:ERP2_TEST_ID_seq 改相应程序中 指定序列生成器的地方 OK了吧 看似。。重启tomcat... bug2: org.postgresql.util.PSQLException: ERROR: relation " ERP2_TEST_ID_seq " does not exist 这就奇怪了呢 看了网上一朋友的 英文留言...说什么 改成 ERP2_TEST_id_seq就OK了 没办法 行不行 程序跑了 才知道 结果 依然~~ 我索性 把序列名全部改成小写形式 erp2_test_id_seq... 先露出点得意的笑 好了 启动不报错误了.... 再就是跑具体的模块的增删改查操作.... 有一次被囧了... bug3 org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update ..... ##具体我看到一行错误 说是 没找到表 erp2_test #我不是定义了的吗? 试了好多次... 仔细发现是找不到表 我看到 PostgreSQL 定义表结果的语句是 CREATE TABLE "ERP_ROLE" ( "ID" integer NOT NULL DEFAULT nextval('"ERP_ROLE_ID_seq"'::regclass),"NAME" character varying(20) NOT NULL,CONSTRAINT "PK_ERP_ROLE" PRIMARY KEY ("ID") ) WITHOUT OIDS; ALTER TABLE "ERP_ROLE" OWNER TO postgres; 我然后改成小写 测试 表定义 成为 CREATE TABLE erp_role ( "ID" integer NOT NULL DEFAULT nextval('"erp_role_id_seq"'::regclass),CONSTRAINT "PK_ERP_ROLE" PRIMARY KEY ("ID") ) WITHOUT OIDS; ALTER TABLE erp_role OWNER TO postgres; 启动应用 报相应的找不到 id name 等 然后逐一 改成小写形式 CREATE TABLE erp_role ( id integer NOT NULL DEFAULT nextval('"erp_role_id_seq"'::regclass),name character varying(20) NOT NULL,CONSTRAINT "PK_ERP_ROLE" PRIMARY KEY (id) ) WITHOUT OIDS; ALTER TABLE erp_role OWNER TO postgres;然后就好了呢.... postgreSQL 真的好奇怪 还区分大小写... 这么搞人... 哎呀.. 啰啰嗦嗦 说了这些 ps://每天记录一点 离成功近一点 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 我是否需要在ajax请求和接收该请求的php之间编码/解码查询参
- c# – 如何使用Linq to SQL查找行的ROW_NUMBER()
- 正则表达式 – 正则表达式,数字空格破折号限制为8-13个数字
- ruby-on-rails – Mongoid embeds / has_many:通过等价物
- 解决“No 'Access-Control-Allow-Origin' header i
- oracle解析xml,带命令空间的节点获取
- jsonConfig详细使用
- Elixir Ecto: 在Postgres中使用UUID类型的主键
- C# 如何在Excel表格中插入、编辑和删除批注
- PostgreSQL用户角色及其属性介绍