-- 전자 정부 프레임워크 id Generation 서비스 Table 예
- spring/context-idgen.xml 설정
<bean class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService" destroy-method="destroy" name="egovRoleIdGnrService">
<property name="dataSource" ref="dataSource">
<property name="strategy" ref="roleIdStrategy">
<property name="blockSize" value="1">
<property name="table" value="SEQ">
<property name="tableName" value="ID">
</property></property></property></property></property></bean>
<bean class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl" name="roleIdStrategy">
<property name="prefix" value="test-">
<property name="cipers" value="6">
<property name="fillChar" value="0">
</property></property></property></bean>
blockSize - 카운터가 몇 이후에 DB조회를 할것인지 설정 [ 현재 1은 카운터가 1씩 늘어날때마다 DB조회함..]
table - dataSoure 에 설정된 db의 테이블 이름 [현재 SEQ 테이블]
tableName - dataSoure 에 설정된 DB에 SEQ 테이블에 tableName 컬럼에 참조할 값
strategy: 아래에 정의된 MixPrefix 의 bean name 설정
prefix: 아이디의 앞에 고정적으로 붙이고자 하는 설정값 지정
cipers: prefix를 제외한 아이디의 길이 지정
fillChar: 0을 대신하여 표현되는 문자
-- 소스 참고 ---
/**
* Message ID Generation
* @uml.property name="egovRoleIdGnrService"
* @uml.associationEnd readOnly="true"
*/
@Resource(name="egovRoleIdGnrService")
private EgovIdGnrService egovRoleIdGnrService;
public viod test() {
egovRoleIdGnrService.getNextStringId();
}
-- 호출시 실행되는 쿼리 ----
오라클 기준
SELECT <sequence name="name">.NEXTVAL FROM DUAL
--- DB스키마 -----
CREATE SEQUENCE <sequence name="name"> [START WITH <start value="value">] [INCREMENT BY <increment value="value">] [MINVALUE <min value="value">] [MAXVALUE <max value="value">]
다른 디비 라든지 더 알고 싶으면
- http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:fdl:id_generation
댓글
댓글 쓰기