[ https://issues.apache.org/jira/browse/OPENJPA-2671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=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} HashMap<String, String> persistenceOptions = new HashMap<String, String>(); 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)