본문 바로가기
DB

mybatis multiple select key

by 0725 2023. 9. 19.
<insert id="insertWidgetBackup">
    <selectKey keyColumn="NEW_BACK_NO,LAYOUT_TYPE" keyProperty="newBackNo,layoutType" resultType="map" order="BEFORE">
        SELECT
            MAX(BACK_NO)+1 AS NEW_BACK_NO,
            CCWV.LAYOUT_TYPE AS LAYOUT_TYPE
        FROM
            TB_COM_WIDGET_RECOVERY,
            (SELECT LAYOUT_TYPE
            FROM CM_CFG_WIDGET_VIEW
            WHERE VIEW_NO =  #{viewNo} AND MENU_NO =  #{menuNo} ) CCWV;
    </selectKey>

    INSERT INTO TB_COM_WIDGET_RECOVERY
    (BACK_NO, VIEW_NO, MENU_NO, LAYOUT_TYPE, MEMO, USER_ID, CREATE_DATE, IS_DEL)
    VALUES(#{newBackNo}, #{viewNo}, #{menuNo}, #{layoutType}, #{memo}, #{userId}, sysdate(), 0);

</insert>

 

SELECTKEY 속성

1) keyColumn : selectKey 내의 쿼리의 컬럼명

2) keyProperty : selectKey에서 결과값을 리턴받을 변수명

selectKey 여러개 가져올 때는 반드시 , 콤마 한 다음 띄어쓰기 금지!!!

keyProperty="newBackNo, layoutType" XXXXXX

-> keyProperty="newBackNo,layoutType" 이렇게 붙여서 써야한다

3) resultType : long, string로도 가능하지만 multiple에서는 map으로

4) order: 쿼리 실행 전에 할지, 후에 할지

댓글