기본 콘텐츠로 건너뛰기

2022 08 26 회사 워크샵

전자 정부 프레임워크 Id Generation 서비스 Table 예


-- 전자 정부 프레임워크 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

댓글