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
>
>
>