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