ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bondre, Prathit" <pbon...@chdist.com>
Subject RE: iBatis Subquery and Date error
Date Thu, 26 Jan 2006 19:58:01 GMT
DB2

 

________________________________

From: Nathan.Maves@Sun.COM [mailto:Nathan.Maves@Sun.COM] 
Sent: Thursday, January 26, 2006 1:47 PM
To: user-java@ibatis.apache.org
Subject: Re: iBatis Subquery and Date error

 

Yeah after I sent that I saw that it would not work.

 

What DB are you using?

 

 

On Jan 26, 2006, at 10:22 AM, Bondre, Prathit wrote:





Hi Nathan,

Thanks for your response.

However the #name# and #effDate# do not work in the select statement and
my guess is because in a prepared statement you cannot specify a ? in
the select.

I have tried this already.

That's why I had to use the $effDate$ instead and use the statement and
remapResults. It worked for the name but not for the date.

 

 

 

________________________________

From: Nathan.Maves@Sun.COM [mailto:Nathan.Maves@Sun.COM] 
Sent: Thursday, January 26, 2006 11:17 AM
To: user-java@ibatis.apache.org
Subject: Re: iBatis Subquery and Date error

 

Here are a few things to do that will not solve your problem but will
help clean it up.

 

1. Use the <insert> instead of <statement>

2. Don't specify "remapResults" because you dont have any :)  This
option is not available in an <insert> see item #1

 

To fix your problem....

 

use #name# and #effDate#

 

you are also missing the id parameter in the HashMap

 

 

Stick with java.sql.Date.  Try never to use java.util.Date.

 

Nathan

 

 

 

 

On Jan 26, 2006, at 9:41 AM, Bondre, Prathit 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.Date
object 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.Date
instead 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

 






 





 


Mime
View raw message