Ich muss eine Select-Abfrage mit vielen Parametern in MyBatis, ich möchte die Standard-Mapper XML-Dateistruktur verwenden und fügen Sie ein "UPPER (column_name) =?" zu der Ergebnis-konvertierten Abfrage. Wie kann ich ? HierMyBatis, UPPER in einer WHERE-Bedingung
ist meine where-Klausel
<sql id="My_Select">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and UPPER(${criterion.condition} #{criterion.value})
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value}
and
#{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem"
open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
und hier ist die komplette select-Anweisung:
<select id="mySelect" parameterType="myDataExample"
resultMap="myResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="my_Column_List" />
from istanza_metadato
<if test="_parameter != null">
<include refid="My_Select" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
ich immer erhalten Fehler wie dieser
Der Fehler beim Einstellen von Parametern
...
WHERE (UPPER (id_metadato =?) Und UPPER (valore =))
Ich fühle mich in der Nähe der Lösung bin, aber ich einen Weg nicht finden kann. Danke an alle
Sie sollten nicht "UPPER" einen Ausdruck, fügen Sie "obere" Funktion in Ihrem Kriterium. – Blank
Könnten Sie bitte mit einem Beispiel erklären? – Fjordo
'WHERE (UPPER (id_metadato) =? Und UPPER (valore) =?)' Wird funktionieren. – Blank