[jira] [Commented] (OPENJPA-2671) Wrong type mapping for double in HSQLDB
[ https://issues.apache.org/jira/browse/OPENJPA-2671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15581503#comment-15581503 ] Andreas Borg commented on OPENJPA-2671: --- [~struberg], thanks for your suggestion. I fixed my application by detecting at runtime if HSQLDB is used and if yes, setting this property before initializing the EntityManagerFactory: {code} HashMappersistenceOptions = new HashMap (); if (isHsqldb()) { persistenceOptions.put("openjpa.jdbc.DBDictionary", "(DoubleTypeName=DOUBLE)"); } EntityManager emf = Persistence.createEntityManagerFactory("myApplication", persistenceOptions); {code} For my application, this issue is thereby solved. I leave it to you to decide if there should be a general fix. > Wrong type mapping for double in HSQLDB > --- > > Key: OPENJPA-2671 > URL: https://issues.apache.org/jira/browse/OPENJPA-2671 > Project: OpenJPA > Issue Type: Bug > Components: jdbc >Affects Versions: 2.4.1 >Reporter: Andreas Borg > Attachments: testHsqldbDouble.zip > > > Currently, Java type {{double}} is mapped to {{NUMERIC}} for HSQLDB: > {code:title=HSQLDictionary.java, line 82|borderStyle=solid} >doubleTypeName = "NUMERIC"; > {code} > (see > https://fisheye6.atlassian.com/browse/~tag=2.4.1/openjpa/tags/2.4.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?hb=true). > This seems wrong to me, as HSQLDB's {{NUMERIC}} is not a binary floating > point type, but represents exact decimal numbers and maps to Java type > {{BigDecimal}} (see HSQL documentation: > http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#sgc_numeric_types). The > corresponding HSQL type for {{double}} is, according to this manual, > {{REAL}}, {{FLOAT}} or {{DOUBLE}} (all being equivalent). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (OPENJPA-2671) Wrong type mapping for double in HSQLDB
[ https://issues.apache.org/jira/browse/OPENJPA-2671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15575455#comment-15575455 ] Andreas Borg commented on OPENJPA-2671: --- I am using HSQLDB 2.3.3. Our specific problem is that {{Double.NEGATIVE_INFINITY}} (this probably also applies to {{POSITIVE-INFINITY}}) cannot be saved when a {{NUMERIC}} column is used (HSQL raises an exception saying "numeric value out of range". This problem does not ocur when enforcing a {{DOUBLE}} column by annotating {{@Column(columnDefinition = "DOUBLE")}}. I have attached test code (executable with {{mvn test}}), which reproduces this error and demonstrates that it does not occur with mapping to database type {{DOUBLE}}. > Wrong type mapping for double in HSQLDB > --- > > Key: OPENJPA-2671 > URL: https://issues.apache.org/jira/browse/OPENJPA-2671 > Project: OpenJPA > Issue Type: Bug > Components: jdbc >Affects Versions: 2.4.1 >Reporter: Andreas Borg > Attachments: testHsqldbDouble.zip > > > Currently, Java type {{double}} is mapped to {{NUMERIC}} for HSQLDB: > {code:title=HSQLDictionary.java, line 82|borderStyle=solid} >doubleTypeName = "NUMERIC"; > {code} > (see > https://fisheye6.atlassian.com/browse/~tag=2.4.1/openjpa/tags/2.4.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?hb=true). > This seems wrong to me, as HSQLDB's {{NUMERIC}} is not a binary floating > point type, but represents exact decimal numbers and maps to Java type > {{BigDecimal}} (see HSQL documentation: > http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#sgc_numeric_types). The > corresponding HSQL type for {{double}} is, according to this manual, > {{REAL}}, {{FLOAT}} or {{DOUBLE}} (all being equivalent). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (OPENJPA-2671) Wrong type mapping for double in HSQLDB
[ https://issues.apache.org/jira/browse/OPENJPA-2671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15575444#comment-15575444 ] Andreas Borg edited comment on OPENJPA-2671 at 10/14/16 2:12 PM: - Attached test code raising an exception when trying to store Double.NEGATIVE_INFINITY into HSQLDB with default type mapping. was (Author: andreasborg): Test code raising an exception when trying to store Double.NEGATIVE_INFINITY into HSQLDB with default type mapping. > Wrong type mapping for double in HSQLDB > --- > > Key: OPENJPA-2671 > URL: https://issues.apache.org/jira/browse/OPENJPA-2671 > Project: OpenJPA > Issue Type: Bug > Components: jdbc >Affects Versions: 2.4.1 >Reporter: Andreas Borg > Attachments: testHsqldbDouble.zip > > > Currently, Java type {{double}} is mapped to {{NUMERIC}} for HSQLDB: > {code:title=HSQLDictionary.java, line 82|borderStyle=solid} >doubleTypeName = "NUMERIC"; > {code} > (see > https://fisheye6.atlassian.com/browse/~tag=2.4.1/openjpa/tags/2.4.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?hb=true). > This seems wrong to me, as HSQLDB's {{NUMERIC}} is not a binary floating > point type, but represents exact decimal numbers and maps to Java type > {{BigDecimal}} (see HSQL documentation: > http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#sgc_numeric_types). The > corresponding HSQL type for {{double}} is, according to this manual, > {{REAL}}, {{FLOAT}} or {{DOUBLE}} (all being equivalent). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (OPENJPA-2671) Wrong type mapping for double in HSQLDB
[ https://issues.apache.org/jira/browse/OPENJPA-2671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andreas Borg updated OPENJPA-2671: -- Attachment: testHsqldbDouble.zip Test code raising an exception when trying to store Double.NEGATIVE_INFINITY into HSQLDB with default type mapping. > Wrong type mapping for double in HSQLDB > --- > > Key: OPENJPA-2671 > URL: https://issues.apache.org/jira/browse/OPENJPA-2671 > Project: OpenJPA > Issue Type: Bug > Components: jdbc >Affects Versions: 2.4.1 >Reporter: Andreas Borg > Attachments: testHsqldbDouble.zip > > > Currently, Java type {{double}} is mapped to {{NUMERIC}} for HSQLDB: > {code:title=HSQLDictionary.java, line 82|borderStyle=solid} >doubleTypeName = "NUMERIC"; > {code} > (see > https://fisheye6.atlassian.com/browse/~tag=2.4.1/openjpa/tags/2.4.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?hb=true). > This seems wrong to me, as HSQLDB's {{NUMERIC}} is not a binary floating > point type, but represents exact decimal numbers and maps to Java type > {{BigDecimal}} (see HSQL documentation: > http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#sgc_numeric_types). The > corresponding HSQL type for {{double}} is, according to this manual, > {{REAL}}, {{FLOAT}} or {{DOUBLE}} (all being equivalent). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (OPENJPA-2671) Wrong type mapping for double in HSQLDB
Andreas Borg created OPENJPA-2671: - Summary: Wrong type mapping for double in HSQLDB Key: OPENJPA-2671 URL: https://issues.apache.org/jira/browse/OPENJPA-2671 Project: OpenJPA Issue Type: Bug Components: jdbc Affects Versions: 2.4.1 Reporter: Andreas Borg Currently, Java type {{double}} is mapped to {{NUMERIC}} for HSQLDB: {code:title=HSQLDictionary.java, line 82|borderStyle=solid} doubleTypeName = "NUMERIC"; {code} (see https://fisheye6.atlassian.com/browse/~tag=2.4.1/openjpa/tags/2.4.1/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/HSQLDictionary.java?hb=true). This seems wrong to me, as HSQLDB's {{NUMERIC}} is not a binary floating point type, but represents exact decimal numbers and maps to Java type {{BigDecimal}} (see HSQL documentation: http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#sgc_numeric_types). The corresponding HSQL type for {{double}} is, according to this manual, {{REAL}}, {{FLOAT}} or {{DOUBLE}} (all being equivalent). -- This message was sent by Atlassian JIRA (v6.3.4#6332)