Hi Kevin! thanks for your hint as well. i learn a lot about OpenJPA these days :)
Chris On 8 August 2012 21:44, Kevin Sutter <kwsut...@gmail.com> wrote: > And, to ensure that subclassing is not available, put this property in your > persistence.xml (disabling subclassing became the default in OpenJPA > 2.0.x): > > <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/> > > If OpenJPA detects subclassing when loading Entities, it will throw an > Exception and not allow further processing (if the above property is set to > "unsupported"). > > Thanks, > Kevin > > On Wed, Aug 8, 2012 at 1:22 PM, Mark Struberg <strub...@yahoo.de> wrote: > > > yikes, that means you use subclassing. > > > > > > I recommend to use the openjpa-maven-plugin to enhance the classes at > > build time already. > > > > Here is a sample which you can look at > > > > > https://github.com/struberg/lightweightEE/blob/master/backend-api/pom.xml > > > > We still need to polish our own documentation, but the parameters are > > almost the same as in the old version which you can find at [1]. > > The openjpa-maven-plugin is not part of OpenJPA itself since 2.2.0. > > > > > > LieGrue, > > strub > > > > [1] http://mojo.codehaus.org/openjpa-maven-plugin/usage.html > > > > > > > > ----- Original Message ----- > > > From: Chris Joysn <joys...@gmail.com> > > > To: users@openjpa.apache.org > > > Cc: > > > Sent: Wednesday, August 8, 2012 7:04 PM > > > Subject: Re: Annotations removed when enhancing? > > > > > > well... i am not so an experienced OpenJPA user but i can provide the > > > following information: > > > > > > before merging the entity to an persistence context the class of the > > entity > > > looks like: > > > > > > org.activiti.standalone.jpa.FieldAccessJPAEntity@4260ab > > > > > > after the merge it looks like: > > > > > > org.apache.openjpa.enhance.org > > > $activiti$standalone$jpa$FieldAccessJPAEntity$pcsubclass@df88d2 > > > > > > when performing an > > > > > > private boolean isEntityAnnotationPresent(Class<?> clazz) { > > > return (clazz.getAnnotation(Entity.class) != null); > > > } > > > > > > the Entity.class annotation is found before the merge, not not after > the > > > merge. > > > > > > And when subclassing is bad, how can i get rid of it? > > > > > > Chris > > > > > > On 8 August 2012 15:55, Kevin Sutter <kwsut...@gmail.com> wrote: > > > > > >> > What way of enhancement do you use in your project? > > >> > If you use subclassing, then the generated subclass is probably > > > without > > >> annotations. > > >> > > >> And, if you are using subclassing, then quit using subclassing! :-) > > >> Nobody that is serious about their application should be using > > subclassing > > >> support. I've even been throwing around the idea of removing the > > >> subclassing support altogether since it can cause more issues than it > > >> resolves... But, that's a whole separate discussion... > > >> > > >> Kevin > > >> > > >> On Wed, Aug 8, 2012 at 1:13 AM, Mark Struberg <strub...@yahoo.de> > > > wrote: > > >> > > >> > > > >> > > > >> > Kevin is right. I re-checked it now as well. At least for > build-time > > >> > enhanced entities the annotations remain on the class and fields. > We > > > do > > >> not > > >> > use method annotations, so I cannot check this quickly. > > >> > > > >> > What confused me earlier is that jad (java decompiler) doesn't > > > seem to > > >> > show annotations in general. But looking at the hex dump of the > class > > >> file > > >> > itself clearly shows that they are there. > > >> > > > >> > What way of enhancement do you use in your project? > > >> > If you use subclassing, then the generated subclass is probably > > > without > > >> > annotations. > > >> > > > >> > > > >> > LieGrue, > > >> > strub > > >> > > > >> > > > >> > > > >> > ----- Original Message ----- > > >> > > From: Kevin Sutter <kwsut...@gmail.com> > > >> > > To: users@openjpa.apache.org > > >> > > Cc: > > >> > > Sent: Tuesday, August 7, 2012 5:21 PM > > >> > > Subject: Re: Annotations removed when enhancing? > > >> > > > > >> > > I'm curious why you think that the annotations are > > > removed... Even > > >> after > > >> > > enhancement is performed, OpenJPA parses the entity classes to > > > get the > > >> > ORM > > >> > > data, which is normally specified via annotations. Do you have > > > an > > >> > example? > > >> > > > > >> > > Kevin > > >> > > > > >> > > On Sun, Aug 5, 2012 at 1:09 PM, Chris Joysn > > > <joys...@gmail.com> wrote: > > >> > > > > >> > >> well.. unfortunately a framework relies on it to detect JPA > > >> > entities... i > > >> > >> think there is no other way to detect in a reliable way JPA > > > entities? > > >> > >> > > >> > >> LieGrueZuRue > > >> > >> > > >> > >> > > >> > >> On 5 August 2012 19:52, Mark Struberg > > > <strub...@yahoo.de> wrote: > > >> > >> > > >> > >> > Having code relying on @Entity is bitter so to say ;) > > >> > >> > > > >> > >> > All JPA functions could also be added via XML, without > > > having any > > >> > >> > annotation on your entities... > > >> > >> > > > >> > >> > Such code would btw also not work in Hibernate if you > > > use proxies. > > >> > >> Becasue > > >> > >> > the generated proxies don't have annotations > > > neither. > > >> > >> > > > >> > >> > LieGrue, > > >> > >> > strub > > >> > >> > > > >> > >> > > > >> > >> > > > >> > >> > ----- Original Message ----- > > >> > >> > > From: Chris Joysn <joys...@gmail.com> > > >> > >> > > To: users@openjpa.apache.org > > >> > >> > > Cc: > > >> > >> > > Sent: Sunday, August 5, 2012 7:19 PM > > >> > >> > > Subject: Annotations removed when enhancing? > > >> > >> > > > > >> > >> > > Hello, > > >> > >> > > > > >> > >> > > is it possible that entities do not get their > > > annotations removed > > >> > > when > > >> > >> > > OpenJPA is performing its enhancements? > > >> > >> > > > > >> > >> > > unfortunately some code relies on the fact that > > > eg. @Entity is > > >> > > present > > >> > >> on > > >> > >> > > classes, but this annotation gets removed by > > > OpenJPA. > > >> > >> > > > > >> > >> > > thanks > > >> > >> > > > > >> > >> > > > >> > >> > > >> > > > > >> > > > >> > > > > > >