Java/mybatis

[mybatis] sql 문의 부등호 사용시 오류 해결 방법

너무 궁금해 2025. 3. 18. 15:09

📢 [mybatis] sql 문의 부등호 사용시 오류 해결 방법 


🙌 mybatis내의 sql 문 사용예제입니다. (ms-sql server sql 문을 이용한 예제입니다.)

    <select id="verifySms" parameterType="String" resultType="String">
        select 'Y'
        from verifyTelephone
        where authCode = #{authCode}
        and datediff(hour, createDate, GETDATE()) = 1
    </select>

 

🙌  하지만, 부등호가 사용되면 오류가 발생합니다. 

    <select id="verifySms" parameterType="String" resultType="String">
        select 'Y'
        from verifyTelephone
        where authCode = #{authCode}
        and datediff(hour, createDate, GETDATE()) <= 1
    </select>

 

🙌  MyBatis에서 <(작다), >(크다) 같은 부등호를 사용할 때는 XML의 특성상 엔티티 코드로 변환해야 합니다.   

🚨 오류 원인

XML에서는 <와 >를 태그로 인식하기 때문에, 직접 사용하면 파싱 오류가 발생합니다.

✅ 해결 방법: &lt;, &gt; 사용

< → &lt;
> → &gt;

🙌 아래와 같이 사용하면 오류가 발생하지 않습니다.

    <select id="verifySms" parameterType="String" resultType="String">
        select 'Y'
        from verifyTelephone
        where authCode = #{authCode}
        and datediff(hour, createDate, GETDATE()) &lt;= 1
    </select>