jfinal_demo2.0 在Postgresql下运行,id自增字段写入错误问题

jfinal_demo2.0 在Postgresql下运行,id自增字段写入错误问题

少女情怀诗 发布于 2021-11-24 字数 1211 浏览 695 回复 8

@jFinal 自从转管理,10年不撸码,一撸就伤神。

喜见jFinal2.0  下载最新的jfinal_demo 先修改sql为PostgreSQL支持。

DROP TABLE blog;
CREATE TABLE blog (
  id SERIAL NOT NULL,
  title varchar(200) NOT NULL,
  content text NOT NULL,
  primary key (id)
) ;

INSERT INTO blog VALUES (DEFAULT, 'JFinal Demo Title here', 'JFinal Demo Content here');
INSERT INTO blog VALUES (DEFAULT, 'test 1', 'test 1');
INSERT INTO blog VALUES (DEFAULT, 'test 2', 'test 2');
INSERT INTO blog VALUES (DEFAULT, 'test 3', 'test 3');
INSERT INTO blog VALUES (DEFAULT, 'test 4', 'test 4');
INSERT INTO blog  ("title","content") VALUES ( 'test 5', 'test 5');

然后参考手册修改DemoConfig.java使用Postgresql

……
c3p0Plugin.setDriverClass("org.postgresql.Driver");
……
arp.setDialect(new PostgreSqlDialect());

启动Tomcat后JFinal Demo Blog应用可以正常启动。但做增加操作时sql插入语句,id这个自增主键是null值。Postgresql不允许null。 请问是否有其他方言参数设置用于兼容这一情况?如果没有参数设置是否需要在Blog.java 中重写save()方法?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

筱武穆 2021-12-01 8 楼

引用来自“NotFoundException”的评论

@JFinal 我之前也碰到这个问题;解决方式是blog.setAttr("title");
blog.setAttr("content");  在保存,这样Id就不会为空了,手动设置值就可以了

恋你朝朝暮暮 2021-12-01 7 楼

@JFinal 我之前也碰到这个问题;解决方式是blog.setAttr("title");
blog.setAttr("content");  在保存,这样Id就不会为空了,手动设置值就可以了

滥情空心 2021-12-01 6 楼

不是在 getModel(..).save() 前增加那行代码,而是直接用新的代码取代它

想挽留 2021-12-01 5 楼

引用来自“JFinal”的评论

突然看到你的 JFinal action report 中的 parameter 中有blog.id=null,界面应该用了一个 <input name="id" /> 既然自增主键就不用为 id 赋值了,去掉这个 input ,或者这样 getModel(...).remove("id") 即可打完收工

离去的眼神 2021-12-01 4 楼

突然看到你的 JFinal action report 中的 parameter 中有blog.id=null,界面应该用了一个 <input name="id" /> 既然自增主键就不用为 id 赋值了,去掉这个 input ,或者这样 getModel(...).remove("id") 即可打完收工

把昨日还给我 2021-12-01 3 楼

引用来自“JFinal”的评论

建表sql 改成这样试试:

DROP TABLE blog;
CREATE TABLE blog (
  id SERIAL primary key,
  title varchar(200) NOT NULL,
  content text NOT NULL
);

已下线请稍等 2021-12-01 2 楼

建表sql 改成这样试试:

DROP TABLE blog;
CREATE TABLE blog (
  id SERIAL primary key,
  title varchar(200) NOT NULL,
  content text NOT NULL
);

琴流音 2021-11-30 1 楼

引用来自“JonL”的评论

引用来自“JFinal”的评论

突然看到你的 JFinal action report 中的 parameter 中有blog.id=null,界面应该用了一个 <input name="id" /> 既然自增主键就不用为 id 赋值了,去掉这个 input ,或者这样 getModel(...).remove("id") 即可打完收工