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 Marco Berri <ma...@bluestudio.it> on 2007/06/08 12:11:18 UTC

Postres 8.1 and double precision

Hi,

I have a problem with Postgres 8.1, ibatis and jdbc
postgresql-8.1-409.jdbc3.jar


My update map is ...

<update id="updmenuforId">
UPDATE PUBLIC.MENU
	<dynamic prepend="SET">					<isNotNull prepend="," property="priority">
PRIORITY=#priority#
</isNotNull>

<isNotNull prepend="," property="item_id">
ITEM_ID=#item_id#
</isNotNull>

<isNotNull prepend="," property="att_name">
ATT_NAME=#att_name#
</isNotNull>

<isNotNull prepend="," property="att_value">
ATT_VALUE=#att_value#
</isNotNull>
</dynamic>

WHERE MENU_ID=#menu_id#
</update>

if i try using "updmenuforId"" with postgresql-8.1-409.jdbc3.jar the
error is:

Error Execute query:updmenuforId key:{att_value=Personajes,
menu_id=138201, att_name=title, priority=10, item_id=1}
com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred while applying a parameter map.  
--- Check the updmenuforId-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: org.postgresql.util.PSQLException: ERROR: column "priority"
is of type double precision but expression is of type character varying
        at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
        at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:447)
        at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
        at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:59)
        at org.tnes.storage.StorageService.save(StorageService.java:871)
        at org.tnes.object.ObjectService.update(ObjectService.java:1107)
        at org.tnes.action.java.Save.exec(Save.java:351)
        at
org.tnes.script.NativeScriptManager.eval(NativeScriptManager.java:66)
        at
org.tnes.script.AbstractScriptManager.eval(AbstractScriptManager.java:59)
        at
org.tnes.action.ActionService.executeAction(ActionService.java:578)
        at
org.tnes.action.ActionService.executeAction(ActionService.java:538)
        at org.tnes.kernel.Cycle.exec(Cycle.java:925)
        at org.tnes.kernel.Cycle.action(Cycle.java:882)
        at org.tnes.kernel.Cycle.service(Cycle.java:252)
        at org.tnes.main.TnesFilter.doFilter(TnesFilter.java:164)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.tnes.kernel.MicroKernelFilter.doFilter(MicroKernelFilter.java:182)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.tnes.kernel.MicroKernelFilter.doFilter(MicroKernelFilter.java:212)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:634)
        at org.apache.tomcat.util.net.JIoEndpoint
$Worker.run(JIoEndpoint.java:445)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.postgresql.util.PSQLException: ERROR: column "priority"
is of type double precision but expression is of type character varying
        at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1531)
        at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1313)
        at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
        at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
        at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)
        at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:347)
        at
org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
        at
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81)
        at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
        at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
        ... 32 more







with postgresql-74_jdbc.jar this does not happed!

Thanks!





Re: Postres 8.1 and double precision

Posted by Larry Meadors <lm...@apache.org>.
This seems wrong:

<isNotNull prepend="," property="priority">
  PRIORITY=#priority#
</isNotNull>

Why the prepend value?

What does the bean look like?

Larry


On 6/8/07, Marco Berri <ma...@bluestudio.it> wrote:
> Hi,
>
> I have a problem with Postgres 8.1, ibatis and jdbc
> postgresql-8.1-409.jdbc3.jar
>
>
> My update map is ...
>
> <update id="updmenuforId">
> UPDATE PUBLIC.MENU
>         <dynamic prepend="SET">                                 <isNotNull prepend="," property="priority">
> PRIORITY=#priority#
> </isNotNull>
>
> <isNotNull prepend="," property="item_id">
> ITEM_ID=#item_id#
> </isNotNull>
>
> <isNotNull prepend="," property="att_name">
> ATT_NAME=#att_name#
> </isNotNull>
>
> <isNotNull prepend="," property="att_value">
> ATT_VALUE=#att_value#
> </isNotNull>
> </dynamic>
>
> WHERE MENU_ID=#menu_id#
> </update>
>
> if i try using "updmenuforId"" with postgresql-8.1-409.jdbc3.jar the
> error is:
>
> Error Execute query:updmenuforId key:{att_value=Personajes,
> menu_id=138201, att_name=title, priority=10, item_id=1}
> com.ibatis.common.jdbc.exception.NestedSQLException:
> --- The error occurred while applying a parameter map.
> --- Check the updmenuforId-InlineParameterMap.
> --- Check the statement (update failed).
> --- Cause: org.postgresql.util.PSQLException: ERROR: column "priority"
> is of type double precision but expression is of type character varying
>         at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
>         at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:447)
>         at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
>         at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:59)
>         at org.tnes.storage.StorageService.save(StorageService.java:871)
>         at org.tnes.object.ObjectService.update(ObjectService.java:1107)
>         at org.tnes.action.java.Save.exec(Save.java:351)
>         at
> org.tnes.script.NativeScriptManager.eval(NativeScriptManager.java:66)
>         at
> org.tnes.script.AbstractScriptManager.eval(AbstractScriptManager.java:59)
>         at
> org.tnes.action.ActionService.executeAction(ActionService.java:578)
>         at
> org.tnes.action.ActionService.executeAction(ActionService.java:538)
>         at org.tnes.kernel.Cycle.exec(Cycle.java:925)
>         at org.tnes.kernel.Cycle.action(Cycle.java:882)
>         at org.tnes.kernel.Cycle.service(Cycle.java:252)
>         at org.tnes.main.TnesFilter.doFilter(TnesFilter.java:164)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
> org.tnes.kernel.MicroKernelFilter.doFilter(MicroKernelFilter.java:182)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
> org.tnes.kernel.MicroKernelFilter.doFilter(MicroKernelFilter.java:212)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol
> $Http11ConnectionHandler.process(Http11Protocol.java:634)
>         at org.apache.tomcat.util.net.JIoEndpoint
> $Worker.run(JIoEndpoint.java:445)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.postgresql.util.PSQLException: ERROR: column "priority"
> is of type double precision but expression is of type character varying
>         at
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1531)
>         at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1313)
>         at
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
>         at
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
>         at
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)
>         at
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:347)
>         at
> org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
>         at
> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81)
>         at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
>         at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
>         ... 32 more
>
>
>
>
>
>
>
> with postgresql-74_jdbc.jar this does not happed!
>
> Thanks!
>
>
>
>
>