[
https://issues.apache.org/cayenne/browse/CAY-1052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847#action_12847
]
Andrus Adamchik commented on CAY-1052:
--------------------------------------
ah cool. not sure why I thought that JDBC4 was involved.
> Invalid cast on NUMERICs with scale of 0 using Postgres JDBC 8.2+
> -----------------------------------------------------------------
>
> Key: CAY-1052
> URL: https://issues.apache.org/cayenne/browse/CAY-1052
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 1.2 [STABLE], 2.0 [STABLE], 3.0
> Environment: All
> Reporter: Dave Dombrosky
> Assignee: Andrus Adamchik
>
> A change was recently made in the Postgres JDBC driver, versions 8.2 and up,
> that makes some of the Cayenne code do the wrong thing now.
> In the TypesMapping class, there is the following code:
> if (type == Types.NUMERIC && precision == 0) {
> type = Types.INTEGER;
> }
> This code no longer works right on the newer drivers because the behavior of
> the ResultSetMetaData.getScale() method was changed. It used to return "-1"
> for NUMERICs where it could not determine the scale, but now it returns "0".
> So values with decimal information are being truncated to integers. Please
> reference the following thread for more detail on the return value change:
> http://groups.google.com/group/pgsql.interfaces.jdbc/browse_thread/thread/ee82d41155147672
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.