context-idgen.xml 역할  : 시퀀스 증가



-- 전자 정부 프레임워크 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://yth2626.blogspot.com/2012/11/id-generation-table.html

'Java' 카테고리의 다른 글

[이론] 컴파일러, 인터프리터, JIT  (0) 2019.01.08
[설치] OpenJdk 설치  (0) 2019.01.05
[이론] JDK, JRE, JVM ?  (0) 2019.01.05

+ Recent posts