java中的取值问题

cellJava 2010-05-21 10:16:58
java中用的是hibernate的save保存方法,
oracle数据库中用的是序列加触发器生成的主键

Create sequence public_id_sequence
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE;

CREATE or replace TRIGGER msg_id_trigger
BEFORE INSERT
ON SYSTEM.wz_message
FOR EACH ROW
DECLARE
newId varchar2(100);
BEGIN
SELECT lpad(to_char(msg_id_sequence.currval),10,'W34000000') INTO newId FROM dual;
:NEW.留言编号 := newId;
END;

在用save保存数据之后返回的对象中只能取到序列生成的编号如“1”,无法取到如“W340000001”的值。

请教各位怎么处理?
...全文
103 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mochibing 2010-05-21
  • 打赏
  • 举报
回复
请问你在hibernate的映射文件中指定的主键生成策略是什么?
比如如果是SqlServer2005的自增是这样写的

<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="identity"/>
</id>

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧