1
최근에 myBatis를 사용하고 있는데 동적 sqls를 작성할 때 문제가 발생했습니다.동적 SQL이 메일 ID를 가져 오지 않고 mybatis를 사용합니다.
아래와 같이 동적 SQL을 형성하기 위해 myBatis를 사용할 때 전자 메일 필드에 값을 보낼 때를 제외하고는 모든 필드에서 잘 작동합니다.
emailId 전달시 데이터를 가져 오지 않습니다. emailId 열의 @ 기호에 문제가 있는지 의심 스럽습니까?
<select id = "getAllWithFilter" parameterType="java.util.Map" resultMap="result">
SELECT * FROM EMPLOYEE_LOOKUP
<where>
<if test = "firstName != null">
FIRST_NAME LIKE #{firstName}
</if>
<if test = "phoneNo != null">
AND PHONE LIKE #{phoneNo}
</if>
<if test = "emailId != null">
AND EMAIL LIKE #{emailId}
</if>
<if test = "analystGroup != null">
AND GROUP LIKE #{empGroup}
</if>
<choose>
<when test = "activeFlag != null">
AND EXPIRATION_DATE IS NULL
</when>
<when test = "inactiveFlag != null">
AND EXPIRATION_DATE IS NOT NULL
</when>
</choose>
</where>
</select>
이은 MyBatis로의 디버그 로그입니다 - Log4J를.
AND EMAIL LIKE '%' + #{emailId} + '%'
또는
AND EMAIL LIKE '%' || #{emailId} || '%'
드 :
DEBUG [http-bio-9081-exec-1] - ==> Preparing: SELECT * FROM EMPLOYEE_LOOKUP WHERE EMAIL LIKE ? AND GROUP LIKE ? AND EXPIRATION_DATE IS NULL
DEBUG [http-bio-9081-exec-1] - ==> Parameters: abc(String), F(String)
데이터베이스, 당신은 단순히 매개 변수 값을 둘러싼 %
잊어 버린
EMAIL | GROUP
----------------------
[email protected] | F
내 나쁜 ... 덕분에 많은 =으로
그렇지 않으면 내가 %가 내재되어있는 생각, 행동 :) – GnZ