openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dick <michael.d.d...@gmail.com>
Subject Re: [Newbie] OPenJPA (1.2.1) Enhancement woes
Date Tue, 16 Jun 2009 11:34:48 GMT
Hi,

I have very little (and very out of date) experience with Netbeans. Could
you post the ant task that you're using to run the Enhancer?

My guess is that the class files are enhanced but are written somewhere
outside the normal Netbeans classpath, or you need to trigger a classpath
refresh in Netbeans (I'm assuming you're running in NB).

One way to tell whether the class has been enhanced is to run javap on it.
For example :
$ javap -classpath . org.apache.openjpa.persistence.simple.Person
public class org.apache.openjpa.persistence.simple.Person extends
java.lang.Object *implements org.apache.openjpa.enhance.PersistenceCapable*{

If the class implements PersistenceCapable then the enhancer has run and
it's ready for use.

Hope this helps, maybe someone on the list with more experience with
Netbeans can offer some advice.

-mike



On Tue, Jun 16, 2009 at 5:55 AM, B.L. Zeebub <roger.varley@googlemail.com>wrote:

>
> Hi
>
> I've just spent the last three days wrestling with the enhancer and I'm now
> ready to throw the computer out of a fifth floor window. I spent the first
> day or so wrestling with error messages trying to set-up the ant enhancer
> task in Netbeans 6.5.1/Linux (Debian Lenny). (Googling for examples brought
> up many examples that were all slightly different and none of them actually
> worked until I got lucky). I finally got the process to run without falling
> over. I then tried to run my first program. Next problem was that when the
> program tried to create the EntityManagerFactory the program would crash
> messages similair to "Caused by: <openjpa-1.2.1-r752877:753278 fatal user
> error> org.apache.openjpa.persistence.ArgumentException: The type "class
> com.mydomain.flashloader.entities.DataIdentifiersPK" has not been
> enhanced."
>
> I've finally resolved that - I used Netbeans create entities from database
> facility. Netbeans created a class for every table in the database and a
> classPK file for every table that has multi-column primary keys. However,
> it
> only put the table class entities into the persistance.xml and omitted the
> classPK files. So I added all the classPK classes into persistance xml,
> rebuilt the project and now my program starts, creates the
> EntityManagerFactory without crashing.
>
> However, I'm left with a message during startup "1120  FlashLoaderPU  INFO
> [main] openjpa.Enhance - Creating subclass for "[<every entity and entityPK
> in the database listed here>]" This means that your application will be
> less
> efficient and will consume more memory than it would if you ran the OpenJPA
> enhancer. Additionally, lazy loading will not be available for one-to-one
> and many-to-one persistent attributes in types using field access; they
> will
> be loaded eagerly instead."
>
> So I seem to have spent the last three days going around in a complete
> circle. I would be extremely grateful for any pointers as to what on earth
> is going on.
>
> Regards
> --
> View this message in context:
> http://n2.nabble.com/-Newbie--OPenJPA-%281.2.1%29-Enhancement-woes-tp3085661p3085661.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>

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