openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl PIhlblad (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OPENJPA-2086) OracleDictionary setFixed and setFormOfUse(NCLOB) are not really doing what they should.
Date Sun, 04 Dec 2011 12:13:39 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162388#comment-13162388
] 

Karl PIhlblad commented on OPENJPA-2086:
----------------------------------------

After some investigation, it seems as if the nchar information is gathered from the @Column(
columnDefintion ) attribute.

 However, The documentation states that the attribute "is only used by vendors that support
creating tables from your mapping metadata.",
 and nothing is mentioned in the OracleDictionary properties section.

 Regarding setFixedChar; The type information doesn't seem to be available for dynamic columns,
 as the type seems to be set from a "template" VARCHAR(255).  I suppose it means "a big string"
:-)
                
> OracleDictionary  setFixed and setFormOfUse(NCLOB) are not really doing what they should.
> -----------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2086
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2086
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 2.1.1, 2.2.0
>         Environment: Oracle 9g, 10g and 11g
>            Reporter: Karl PIhlblad
>            Priority: Minor
>              Labels: charset, nchar, openjpa, oracle
>
> The setString() method in the OracleDictionary tries to be smart and and look up the
column type, and detect and apply nchar and/or fixed char semantics.
> However, I believe that the type information is normally not present for queries, and
the functions are never called.
> That means that characters outside the database character set will be lost during translation,
and that comparison on CHAR (fixed length) columns will not match if 
> the arguments are not padded to the column length.
>  
> I suggest that the special nchar handling is removed as it is not working properly. The
only "reliable" option is to set the connection property oracle.jdbc.defaultNChar=true,
> as it would be neigh impossible to get this right in an automatic way.
> (Actually, the sensible option is to convert the database to AL32UTF8, and not use nchars
at all since Oracles nchar handling seems to be problematic. )
> Further as the fixedString handling also does not work without type information, the
dictionary could either always, or depending on a flag,  
> call the setFixedChar() method, or just rely on the connection parameter "fixedString"
(and use setObject), avoiding the complexity (and the cost of reflection calls)  altogether.
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message