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

Fay Wang updated OPENJPA-578:
-----------------------------

    Issue Type: Improvement  (was: Bug)

It looks that the current behavior is working as design:

The openjpa.jdbc.MappingDefaults configuration property controls the 
MappingDefaults interface implementation in use. This is a plugin property (see 
Section 4, " Plugin Configuration "), so you can substitute your own 
implementation or configure the existing ones. OpenJPA includes the following 
standard implementations: 
<snip>
default: This is an alias for the 
org.apache.openjpa.jdbc.meta.MappingDefaultsImpl class. This default 
implementation is highly configurable. It has the following properties: 
<snip>
VersionStrategy: The default version strategy for classes without a version 
field. You can specify a builtin strategy alias or the full class name of a 
custom version strategy. You can also use OpenJPA's plugin format (see Section 
4, " Plugin Configuration ") to pass arguments to the strategy instance. Common 
strategies are none, state-comparison, timestamp, and version-number, the 
default. See the org.apache.openjpa.jdbc.meta.strats package for all available 
strategies. 



> Specifying a default for VersionStrategy in persistence.xml has no effect 
> when a version field is present in the entity class.
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-578
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-578
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: jdbc
>    Affects Versions: 1.0.2
>            Reporter: Fay Wang
>             Fix For: 1.2.0
>
>         Attachments: openjpa.patch
>
>
> Specifying a default for VersionStrategy in persistence.xml has no effect 
> when a version field is present in the entity class.
> According the OpenJPA documentation the following property should override 
> the default value of VersionStrategy and the specified 
> RowChangeTimestampStrategy should be applied for all entity classes. 
>  <property name="openjpa.jdbc.MappingDefaults" 
>               
> value="jpa(VersionStrategy=com.ibm.websphere.persistence.RowChangeTimestampStrategy)"
>  />
> JPA accepts this property but then it has no effect on Entity mappings if the 
> version field is present.
> import javax.persistence.*;
> import org.apache.openjpa.persistence.jdbc.VersionStrategy;
> @Entity
> public class EntityA {
>       @Id int id;
>       String name;
>       double amt;
>       @Version java.sql.Timestamp lastUpdate;
> For EntityA, the version strategy should be RowChangeTimestampStrategy. 
> Instead, the NumberVersionStrategy is adopted. 
> If the @Version is removed from EntityA, the version strategy becomes 
> RowChangeTimestampStrategy.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to