[ https://issues.apache.org/jira/browse/OPENJPA-2558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14285302#comment-14285302 ]
Mark Struberg commented on OPENJPA-2558: ---------------------------------------- I found a few more locations where we don't distinguish on how Booleans get stored in the database. E.g. in SQLBuffer#372 {code} else if (type == Boolean.class) { Boolean b = (Boolean) o; // We store B(b)ooleans as ints. Convert _sql.append((b.booleanValue() ? "1" : "0")); {code} That would already have broken PostgreSQL who stores Booleans as BOOLEAN (means "true"/"false" in the query string). Is this part of the SQLBuffer still being used? > Implement a way to select the db representation of Boolean values > ----------------------------------------------------------------- > > Key: OPENJPA-2558 > URL: https://issues.apache.org/jira/browse/OPENJPA-2558 > Project: OpenJPA > Issue Type: New Feature > Components: jdbc > Affects Versions: 2.3.0, 2.4.0 > Reporter: Mark Struberg > Assignee: Mark Struberg > Attachments: OPENJPA-2558.patch > > > Many Databases do not natively support the SQL-99 BOOLEAN datatype. Boolean > and boolean fields in JPA entities will thus get represented as another type > in the database. OpenJPA currently has a hardcoded mapping to int 1/0 in the > base DBDictionary. > But many existing databases don't use NUMBER(1) as column type but e.g. > CHAR(1) (because it uses less space in the index). > There are also all sorts of possible representations where one of those is > usually consistently used throughout a customer application: > * Native Boolean -> PreparedStatement#setBoolean > * Int 0/1 -> PreparedStatement#setInt > * String "Y"/"N" -> PreparedStatement#setString > * String "T"/"F" -> PreparedStatement#setString > * String "y"/"n" -> PreparedStatement#setString > * String "t"/"f" -> PreparedStatement#setString > And I've also seen translated ones: "J"/"N" in german apps for "Ja"/ "Nein" > (yes/no). > So it should be possible to even add your own custom BooleanRepresentation. -- This message was sent by Atlassian JIRA (v6.3.4#6332)