jfinal在Oracle使用序列的问题@JFinal

大神们好,最近在使用序列时,发现一个问题。按照文档

// 创建User并使用序列
User user = new User().set("id", "MY_SEQ.nextval").set("age", 18);
user.save();
// 获取id值
Integer id = user.get("id");

是可以直接写序列名的,但这里没有说明是在哪个情况下有效。

id是非主键时(主键没有错),就报错了

image.png

我代码是这样写的,有什么问题吗?

image.png


评论区

JFinal

2020-09-05 19:17

先要建好序列:
CREATE SEQUENCE SEQ_AID002
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999999999999
START WITH 1
CACHE 20;

此外,这种是 oracle 的用法,注意方言要配置好

JFinal

2020-09-05 19:17

最后,以控制台输出的异常信息来排错

北流家园网

2020-09-05 21:50

@JFinal 序列是有的,异常信息就是提示无效数字。如果改为主键,就能顺利保存。

jiren

2020-09-05 22:32

@北流家园网 , beiliu.ccoo 你的网址是这个么

北流家园网

2020-09-06 09:44

@jiren 不是,现在不搞网站了。对此问题,你有何处理方法?

zzutligang

2020-09-07 08:57

@北流家园网 据我理解,设置序列,应该是提交到数据库保存后,再去取值才能取到。