You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2015/07/03 08:09:05 UTC

[jira] [Commented] (OPENJPA-2341) OpenJPA ignores custom field strategies globally defined in persistence.xml

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

ASF subversion and git services commented on OPENJPA-2341:
----------------------------------------------------------

Commit 1688947 from [~struberg] in branch 'openjpa/trunk'
[ https://svn.apache.org/r1688947 ]

OPENJPA-2341 fix ValueHandler pickup via FieldStrategies

Sadly this atm only works for fields which are Serializable. 
Menas the ValueHandler can just change the presentation right now
but it doesn't work for mapping non-Serializable classes like
java.security.Principal.

> 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-wip-1.patch, 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)