JFinal中使用自定义Sequence的问题

整天散步的鱼 发布于 2012/07/25 12:36
阅读 554
收藏 0

JFinal中使用自定义Sequence的问题.

JFinal中如何使用自定义Sequence?

有没有设置Sequence名称的地方,比如在映射Model的时候.

arp.addMapping("Book", Book.class); // 映射blog 表到 Blog模型

arp.addAutoSequence("SEQ_ABC", Book.class);

目前我是这么做的.

Book book = getModel(Book.class);
book.set("ID", Db.queryBigDecimal("select SEQ_ABC.nextval from dual").intValue());
book.save();

加载中
1
Andre.Z
Andre.Z

以前为了兼容原来的代码,我还特意去弄了个指定sequence的,后来,发现,只要检查到主键没传值过来,去查一下,有没一个特定的序列(序列的名字要照算法出,保证大部分时候名字唯一就好,oracle序列名称有长度限制, 最长是30还是32个字符,忘记了),有就自动去取,没的话,自动创建一个,起始值为主键最大值+1就好了。

自动建立序列,自动设置序列起始值,也就能差不多的模拟出自增字段了。通过自动设置起始值,还不会影响到原有数据,直接算是平移吧。
老是用一个序列,值的跳跃性太大了,看着不爽,hibernate一个id_sequence走到死,太吐血了,不知道现在有改进没,6、7年前是这样的。
有些东西,缓存一下,也就只要检测一次了,没啥效率影响。
所以,直接无视序列了。

以上就是我抛的砖了:通过自动建立序列,接管原用序列,模拟自增字段,屏蔽序列。

0
JFinal
JFinal
非常有价值的问题,曾经考虑过针对 oracle 在 addMapping 方法中 设置Sequence名称 这个参数,但为了一致性,暂时决定不特殊化处理。下一步改进的方向暂定围绕 OracleDialect 来做。例如在 Model.save 方法中对 oracle 数据库进行额外的处理。后续版本考虑彻底解决这个问题 :)
0
鱼中鱼
鱼中鱼
呵呵,期待新版 哦。
0
整天散步的鱼
整天散步的鱼

引用来自“JFinal”的答案

非常有价值的问题,曾经考虑过针对 oracle 在 addMapping 方法中 设置Sequence名称 这个参数,但为了一致性,暂时决定不特殊化处理。下一步改进的方向暂定围绕 OracleDialect 来做。例如在 Model.save 方法中对 oracle 数据库进行额外的处理。后续版本考虑彻底解决这个问题 :)

感谢詹兄的回答.

期待JFinal一直走下去.

目前我使用JFinal做一些小的应用, 后续考虑应用在较大项目中.

0
JFinal
JFinal

引用来自“整天散步的鱼”的答案

引用来自“JFinal”的答案

非常有价值的问题,曾经考虑过针对 oracle 在 addMapping 方法中 设置Sequence名称 这个参数,但为了一致性,暂时决定不特殊化处理。下一步改进的方向暂定围绕 OracleDialect 来做。例如在 Model.save 方法中对 oracle 数据库进行额外的处理。后续版本考虑彻底解决这个问题 :)

感谢詹兄的回答.

期待JFinal一直走下去.

目前我使用JFinal做一些小的应用, 后续考虑应用在较大项目中.

谢谢支持,多来 OSC 提问反馈 :)
返回顶部
顶部