openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter" <>
Subject Re: Three minor issues with the OpenJPA User's Guide.
Date Tue, 10 Apr 2007 21:11:44 GMT
Comments inline...

On 4/10/07, Jesse Benson <> wrote:
> Section 1.2 is as follows:
>         1.2.  Final
>         Entity classes may not be final. No method of an entity class can
> be final.
>         Note
>         OpenJPA supports final classes and final methods.
> This wording is rather confusing.  According to section 1. About This
> Document, the document provides an overview of the JPA standard.  If one
> were to assume that the Notes are OpenJPA specific, and the rest is an
> overview of the standard, this could be seen as the user's guide saying
> that
> OpenJPA is breaking specs.

Actually, the way to look at this is that the "Notes" sections document
OpenJPA extensions to the spec, not breaking the spec.  The spec states that
Entity classes and methods and persistent instance variables can not be
final.  So, if you want your Entity classes to work with any CTS-compliant
JPA implementation, then they should not be final themselves nor have final
methods or persistent instance variables.  But, OpenJPA allows for final
Entity classes and methods as an extension to the spec.  If you rely on this
feature, then there is a good chance that your application will not work if
you attempt to use another JPA implementation.  Unless someone disagrees, I
think this section is okay as is.

In section 2.12.  Order By
>         OpenJPA expands the available ordering syntax. See ??? in the
> Reference
> Guide for details.

I'm assuming this should be referring to our Large Result Set capabilities.
I will update the documentation to point at the LRS section of the Reference
Guide, unless someone has another idea of what the ???'s refer to.

In section 2.  Entity Lifecycle Management
>         For a given entity A, the refresh method behaves as follows:
>                 If A is a new entity, it is ignored. However, the remove
> operation
> cascades as defined below.
>                 If A is an existing managed entity, its state is refreshed
> from the
> datastore.
>                 If A is a removed entity, it is ignored.
>                 If A is a detached entity, an IllegalArgumentException is
> thrown.
>                 The refresh operation recurses on all relation fields of A
> whose cascades
> include CascadeType.REFRESH.
> The problem line is "If A is a new entity, it is ignored.  However, the
> remove operation cascades as defined below."  This could be a copy and
> paste
> mistake from the above discription of the remove method.

Correct, looks like a cut-and-paste problem.  I will update this when I do
the LRS update.

Thanks for catching these!

> View this message in context:
> Sent from the open-jpa-dev mailing list archive at

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message