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”的值。请教各位怎么处理?
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”的值。请教各位怎么处理?
比如如果是SqlServer2005的自增是这样写的<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="identity"/>
</id>