ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lisa Jenkins <lisa.jenk...@investoranalytics.com>
Subject Re: TypehandlerCallback
Date Fri, 14 Sep 2007 14:59:30 GMT
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:E.Haertel@d-trust.net] 
> Sent: vrijdag 14 september 2007 16:22
> To: user-java@ibatis.apache.org
> 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
>   


Mime
View raw message