[ 
https://issues.apache.org/jira/browse/OPENJPA-2341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Struberg updated OPENJPA-2341:
-----------------------------------
    Attachment: OPENJPA-2341.patch

First version, not yet fully working but a start.
I guess there is a cascade of issues. We tried to write a ValueHandler to 
convert joda Time values automatically. Reinhard wrote up a sample app for it: 
https://github.com/rsandtner/openjpa-converter

The first problem was that any handler was totally ignored if the field was 
Serializable. The patch fixes this problem and we now at least get the 
ValueHandler registered in the field. Still some other issues to resolve 
though...

> OpenJPA ignores custom field strategies globally defined in persistence.xml
> ---------------------------------------------------------------------------
>
>                 Key: OPENJPA-2341
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2341
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 2.2.0
>            Reporter: Michael Rüegg
>            Assignee: Mark Struberg
>            Priority: Blocker
>         Attachments: OPENJPA-2341.patch
>
>
> I use a custom field strategy value handler (a class that extends 
> org.apache.openjpa.jdbc.meta.strats.AbstractValueHandler) for my entities 
> that make use of joda time fields:
> @Entity
> public class MyEntity {
>   org.joda.time.LocalDateTime creationDate;
> }
> When I use the inline strategy annotation 
> (@Strategy("com.xyz.LocalDateValueHandler")), everything works as expected 
> and my LocalDateTime field 'creationDate' gets mapped to an SQL timestamp. 
> However, if I reference my value handler globally in the persistence.xml 
> file, then OpenJPA is not able to find the value handler (i.e., it is never 
> called), which results in a blob column type for 'creationDate'. Here's the 
> corresponding snippet from my persistence.xml:
> <property name="openjpa.jdbc.MappingDefaults" 
> value="FieldStrategies='org.joda.time.LocalDateTime=com.xyz.LocalDateValueHandler"/>
> Note that if I use a mapping from a standard JDK class like java.lang.String 
> to my value handler, then my handler is called as expected. Is this issue 
> somehow related to #OPENJPA-758? Note that I use Derby as my database.
> Any help would be much appreciated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to