My best guess is that having overloaded setters breaks the introspection - this is why you're having strange behavior.  This is also an issue with Struts' form beans - overloaded setters breaks in that case too.  Best to pick one and go with it.
 
Jeff Butler

 
On 10/11/05, Fabricio M. Sanchez <fabricio@pstonline.co.uk> wrote:
Hi there,

I have 2 DATE fields on a MySQL table: 'expiry_date' and 'dispatched' that
are identical (apart from their names). They have a default value of NULL
and can be NULL (obviously).

They map to a java class that defines methods for both of them using
parameters String and Date, thus:

public void setExpiryDate( String date ) { System.out.println( "String: " +
date ); }
public void setExpiryDate( java.util.Date date ) { System.out.println(
"Date: " + date ); }

public void setDispatched( String date ) { System.out.println( "String: " +
date ); }
public void setDispatched( java.util.Date date ) { System.out.println(
"Date: " + date ); }

This is my resultMap:
<resultMap id="result-map" class="MyDate">
<result property="expiryDate" column="expiry_date" nullValue="1900/01/01
00:00:00"/>
<result property="dispatched" column="dispatched"  nullValue="1900/01/01
00:00:00"/>
</resultMap>

This is my query:
<select id="get-list" resultMap="result-map">
SELECT *
FROM MyTable
</select>


For some reason expiry_date always gets mapped using the String version of
setExpiryDate(), and dispatched uses the Date version of setDispatched(). If
I try to set the javaType to anything other than the above (say if I try and
force expiry_date as a java.util.Date), then I get a:

com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in mypath/sql-map.xml.
--- The error occurred while applying a result map.
--- Check the result-map.
--- The error happened while setting a property on the result object.
--- Cause: com.ibatis.common.exception.NestedRuntimeException: Error setting
pro
perties of '2285'.  Cause: java.lang.IllegalArgumentException : argument type
mis
match
Caused by: java.lang.IllegalArgumentException: argument type mismatch
Caused by: com.ibatis.common.exception.NestedRuntimeException: Error setting
pro
perties of '2285'.  Cause: java.lang.IllegalArgumentException: argument type
mis
match
Caused by: java.lang.IllegalArgumentException: argument type mismatch
Press any key to continue...


I have no idea why they would be treated differently if they seem identical.
I want to be able to convert both of them to a java.util.Date. Any ideas?

Thank you!

Fabricio

--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.11.14/128 - Release Date: 10/10/2005