MyBatis: comparer la valeur de Chaîne à l'aide de requête dynamique

Je suis l'aide de MyBatis à la carte certaines requêtes où j'ai besoin de comparer un String argument (myString).

Mon Mappeur interface est:

public Map<Integer, String> findSomething(@Param("myString") String myString);

Mon XML est comme suit:

<select id="findSomething" parameterType="String" resultType="Map">
    SELECT column1 as key,
           column2 as value
    FROM my_table
    <where>
         <choose>
            <when test="myString == 'xxx'">
                column3 = 1
            </when>
            <when test="myString == 'yyy'">
                myColumn  = 2
            </when>
            <when test="myString == 'zzz'">
                myColumn  = 3
            </when>
        </choose>
    </where>
    ORDER BY value;
</select>

Lorsque j'exécute cette déclaration, le message d'erreur suivant est avaient envoyé:

ERROR [stderr] Caused by: org.apache.ibatis.exceptions.PersistenceException: 
ERROR [stderr] ### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'myString' in 'class java.lang.String'

Un String comparaison de cette façon, sent mauvais. Malheureusement, c'était la façon de la base de données a été modélisé.

MyBatis version: 3.2.2

OriginalL'auteur axcdnt | 2013-10-18