1,在EO的属性中使用Groovy
优:简单直接
缺:断号
- (neworacle.jbo.server.SequenceImpl("XXXX_SEQ",adf.object.getDBTransaction())).getSequenceNumber()
2,在EO对应的java类的create方法中对属性赋值
优:可以产生复杂的Sequence值
缺:断号
- SequenceImplsequence=
- newSequenceImpl("XXX_SEQ",getDBTransaction());
- oracle.jbo.domain.NumberseqNum=sequence.getSequenceNumber();
- StringstrSeq='SIH_'+seqNum;
- setStorageInHeaderCode(strSeq);
3,使用DBSequence类型
在数据库端创建Trigger给表的字段赋值,在EO中将该字段的类型设置为DBSequence。
优:避免断号
缺:界面中显示的值与最终commit保存到数据库中的值不同。
- CREATEORREPLACETRIGGERASSIGN_SVR_ID
- BEFOREINSERTONSERVICE_REQUESTSFOREACHROW
- BEGIN
- IF<strong>:NEW.SVR_IDISNULL</strong>OR<strong>:NEW.SVR_ID<0</strong>THEN
- SELECTSERVICE_REQUESTS_SEQ.NEXTVAL
- INTO:NEW.SVR_ID
- FROMDUAL;
- ENDIF;
- END;
转自:http://blog.csdn.net/luyushuang/article/details/6684776