Oracle入门教程:ADF 中使用Sequence的方法总结
Oracle入门教程:ADF 中使用Sequence的方法总结
1,在EO的属性中使用Groovy
优:简单直接
缺:断号
- (new Oracle.jbo.server.SequenceImpl("XXXX_SEQ",adf.object.getDBTransaction())).getSequenceNumber()
优:可以产生复杂的Sequence值
缺:断号
- SequenceImpl sequence =
- new SequenceImpl("XXX_SEQ", getDBTransaction());
- oracle.jbo.domain.Number seqNum = sequence.getSequenceNumber();
- String strSeq = 'SIH_' + seqNum;
- setStorageInHeaderCode(strSeq);
在数据库端创建Trigger给表的字段赋值,在EO中将该字段的类型设置为DBSequence。
优:避免断号
缺:界面中显示的值与最终commit保存到数据库中的值不同。
- CREATE OR REPLACE TRIGGER ASSIGN_SVR_ID
- BEFORE INSERT ON SERVICE_REQUESTS FOR EACH ROW
- BEGIN
- IF <strong>:NEW.SVR_ID IS NULL</strong> OR <strong>:NEW.SVR_ID < 0</strong> THEN
- SELECT SERVICE_REQUESTS_SEQ.NEXTVAL
- INTO :NEW.SVR_ID
- FROM DUAL;
- END IF;
- END;
评论暂时关闭