You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Jeff Butler <je...@gmail.com> on 2006/01/26 17:47:48 UTC

Re: iBatis Subquery and Date error

Yes, iBATIS will do a toString() on the effDate in this case - because it is
not a parameter for the SQL, rather it is a substitution value.

The solution is to put effDate into the map as a String in the format that
your database understands.  In other words, you'll have to format the date
yourself.

Jeff Butler


On 1/26/06, Bondre, Prathit <pb...@chdist.com> wrote:
>
>  I currently have a query defined in my XML as follows
>
>
>
> <statement id="insertQuery" parameterClass="java.util.Map"
> remapResults="true">
>
>             Insert into table
>
>             Select
>
>                         Address,
>
>                         City,
>
>                         Zip,
>
>                         $name$ as name,
>
>                         $effDate$ as date
>
>             From
>
>                         Table
>
>             Where
>
>                         Id = #id#
>
> </statement>
>
>
>
> When I call it using the HashMap and set the effDate with java.sql.Dateobject it throws an exception
>
> That the  value is not compatible with the datatype of the target which is
> defined in the database as a Date field.
>
> Also based on the documentation I also tried to pass in a java.util.Dateinstead of the
> java.sql.Date and it got an error
>
> "An unexpected token was found" and it seemed like it was passing in the
> String version of the Date field which included the timestamp in the data
> and it was choking on the : in the timestamp.
>
>
>
> How should I be passing the effDate to this query?
>
>
>
> So far I had
>
> HashMap params = new HashMap();
>
> Params.put("name","Value")
>
> Params.put ("effDate",effDate) // effDate is an instance of java.sql.Date. Also tried with
> java.util.Date.
>
>
>
> What am I doing wrong?
>
>
>
> Any help will be appreciated.
>
>
>
> Thanks,
>
> Prathit Bondre
>
>
>