1
最近myBatisを試していますが、動的sqlsを作成するときに問題に直面しています。mybatisを使用して動的SQLがメールIDを取得しない
以下のようにmyBatisを使用して動的SQLを作成すると、電子メールフィールドに値を送信するときを除いて、すべてのフィールドでうまく動作します。
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の中DEBUGログです - 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
と悪くありません。ありがとうございました...私の考えは、mybatisでLIKEが使用されていると思います:) – GnZ