On MySQL, you can use <=> instead of = for null safe comparison.
<select id="getSomeRecords" parameterClass="RecordItem" resultClass="long">
SELECT ColumnUID
WHERE
Column1 <=> #property1#
AND Column2 = #property2#
</select>
You can also test null values with <isNull> tag.
<select id="getSomeRecords" parameterClass="RecordItem" resultClass="long">
SELECT ColumnUID
WHERE
<isNull property="property1">
Column1 IS NULL
</isNull>
<isNotNull property="property1">
Column1 = #property1#
</isNotNull>
AND Column2 = #property2#
</select>
Christian
________________________________
From: nullptr rejected [mailto:[EMAIL PROTECTED]
Sent: Monday, July 28, 2008 2:44 PM
To: [email protected]
Subject: SELECT containing NULL
I am not getting the expected results when executing a select statement
containing null values.
I have the following example:
<select id="getSomeRecords" parameterClass="RecordItem" resultClass="long">
SELECT ColumnUID
WHERE
Column1 = #property1#
AND Column2 = #property2#
</select>
In java:
class RecordItem {
private String property1;
private String property2;
...
}
If I have a RecordItem that has a property1 that has a null value (as read from
a previous SELECT from that table), then when selecting that record from the
table, I would expect it to return the record. Is there something specific I
have to do to get iBATIS to execute a modified SQL that would use something
like:
SELECT ColumnUID
WHERE
Column1 IS NULL
AND Column2 = 'property2Value'
Thank you for any hints or direction you may be able to provide.
-- CD