Eric,
You can define a parameter map where you can assign the callbackhandler
to the parameter. This how I got mine to work on insert statements.
Other question is, is the time field a nullable field in your db?
Example,
listed in the order they are to be inserted.
<parameterMap id="doExpandListParameterMap"
class="com.investoranalytics.web.db.doExpandList">
<parameter property="nodes"
typeHandler="com.investoranalytics.util.ibatis.StringArrayTypeHandler"/>
<parameter property="reportCode"/>
<parameter property="reportSubId"/>
<parameter property="userId"/>
</parameterMap>
<insert id="insertExpandList" parameterMap="doExpandListParameterMap">
INSERT INTO report.expand_list
(NODES,REPORT_CODE,REPORT_SUB_ID,USER_ID) VALUES (?,?,?,?)
</insert>
Lisa
Niels Beekman wrote:
You're probably not posting the full exception stacktrace. Does iBATIS query
your type handler? You should handle the null case yourself...
Niels
-----Original Message-----
From: Härtel, Eric [mailto:[EMAIL PROTECTED]
Sent: vrijdag 14 september 2007 16:22
To: [email protected]
Subject: TypehandlerCallback
Another newbe question
I did generate some classes by JAXB, so I have a class Application with member
time of XMLGregorianCalendar. In the MS SQLServer database I want to store this
object in is column of type 'datetime'.
I did implement the TypeHandlerCallback and put the following in the config
files
in SqlMapConfig.xml
===================
<typeHandler
javaType="javax.xml.datatype.XMLGregorianCalendar"
jdbcType="TIMESTAMP"
callback="de.my.package.database.TimeTypeHandlerCallback" />
in SqlMap_Application.xml
=========================
<insert id="insertApplication" parameterClass="Application" >
insert into APPLICATION (
APPLICATION_TIME )
values (
#time# )
</insert>
The typehandler is loaded/constructed but not used during execution. I get the
following error:
2007-09-14 16:05:41,530 ERROR - de.my.package.database.DatabaseTest.<init>(DatabaseTest.java:89) [main]: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in SqlMap_Application.xml.
--- The error occurred while applying a parameter map.
--- Check the insertApplication-InlineParameterMap.
--- Check the parameter mapping for the 'time' property.
--- Cause: java.lang.NullPointerException
Trying different JDBC types (DATE, TIME) leads to the same result.
Can anybody give me a clue, where to look for the problem.
greetings, eric