보뇨 다이어리

마이바티스 update 시 유니크값 가져오기 본문

컴퓨터 관련/DB 정보

마이바티스 update 시 유니크값 가져오기

보뇨 2018. 12. 17. 17:50
반응형

예전에 골머리썩히다가 오늘 같은 이슈가 발생해서 생각해보니 아주 간단하게 풀림

일단 아래를 전형적인 update 쿼리부분이다 업데이트할시 해당 Row 의 유니크값을 가져오고 싶은데 기존에 써먹던 selectKey 는 <update> 쪽에서 먹히지않는다


1
2
3
4
5
6
7
<update id="anode" parameterType="com.vessle.tisto.anode.model.anodeVO">
    UPDATE node
    <trim prefix="SET" suffixOverrides=",">
        <if test="version!= ''">version=#{version},</if>
    </trim>
    WHERE manager = #{manager}
</update>
cs


그렇기때문에 seleectKey 가 되는 <insert> 로 해주면 된다 단지 생각만 쫌 바꾸면 되는문제다

아래와 같이 :) 그럼 이만 참고로 5번줄에서 limit 1 을 해주었는데 혹시 모를 복수의 값이 있을까봐 해놨다


1
2
3
4
5
6
7
8
9
10
11
12
<insert id="anode" parameterType="com.vessle.tisto.anode.model.anodeVO">
    <selectKey keyProperty="id" resultType="integer" order="AFTER">
        SELECT id
        FROM node
        WHERE manager = #{manager} limit 1
    </selectKey>
    UPDATE node
    <trim prefix="SET" suffixOverrides=",">
        <if test="version!= ''">version=#{version},</if>
    </trim>
    WHERE manager = #{manager}
</insert>
cs


반응형