挿入したプライマリ・キーのインポート
3888 ワード
1.xmlファイル
InsertでuserGeneratedKeysプロパティをtrue、keyColumn="prchsId"keyProperty="prchsId"に変更します.
SQL_.xml
<!-- 매입발주서 등록 -->
<insert id="insertPrchs" parameterType="prchsVO" useGeneratedKeys="true" keyColumn="prchsId" keyProperty="prchsId">
<selectKey order="BEFORE" keyProperty="prchsId" resultType="string">
SELECT 'PRCHS' || LPAD(NVL(MAX(TO_NUMBER(SUBSTR(NVL(PRCHS_ID, 'PRCHS00001'),6))),0)+1,5,'0') FROM PRCHS
</selectKey>
INSERT INTO PRCHS (
PRCHS_ID,
PRCHS_DT,
PRCHS_AMT,
CNPT_ID,
PRCHS_SE
)
VALUES (
#{prchsId},
#{prchsDt},
#{prchsAmt},
#{cnptId},
'저장'
)
</insert>
2. serviceImpl
ServiceImplでは、insert時にVOオブジェクトをパラメータに渡してinsert処理を行います.
そして、戻り値はVOのId値を格納して返す.
//매입발주서 작성 - 된다~!!!!!!!!!!!!!!!!!!!!
@Override
public int insertPrchs(PrchsVO prchsVO) {
//insert
prchsMapper.insertPrchs(prchsVO);
logger.info("prchsVO : {}",prchsVO);
String prchsId = prchsVO.getPrchsId();
logger.info("아이디 잘드러완는지,, : " + prchsId);
//결과 담을 변수
int result = 0;
//매입상품 insert하기
for(PrchsGdsVO vo : prchsVO.getPrchsGdsVO()) {
//매입상품 하나씩 꺼내서 insert
vo.setPrchsId(prchsId);
//매입상품 insert
result += prchsMapper.insertPrchsGds(vo);
}
return result;
}
下の図のように、loggerを使用してIdを印刷すると、元のNULL値のIdが格納され出力されます. logger.info("prchsVO : {}",prchsVO);
String prchsId = prchsVO.getPrchsId();
logger.info("아이디 잘드러완는지,, : " + prchsId);
Reference
この問題について(挿入したプライマリ・キーのインポート), 我々は、より多くの情報をここで見つけました https://velog.io/@gksmf6699/최종프로젝트-방금-Insert한-기본키primary-key가져오기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol