设为首页 收藏本站
查看: 958|回复: 0

[经验分享] 在postgreSQL数据库上 SSH应用开发bug记录

[复制链接]

尚未签到

发表于 2016-11-20 11:04:13 | 显示全部楼层 |阅读模式
前言 :
    把之前开发好的项目从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),
"NAME" character varying(20) NOT NULL,
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://每天记录一点 离成功近一点

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302849-1-1.html 上篇帖子: [转载]导入文本文件中的数据到PostgreSQL中 下篇帖子: PostgreSQL [ERROR: invalid byte sequence for encoding "UTF8": 0xc0ee](
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表