openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: Annotations removed when enhancing?
Date Wed, 08 Aug 2012 18:22:42 GMT
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 <joysn71@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 <kwsutter@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 <struberg@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 <kwsutter@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 
> <joysn71@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 
> <struberg@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 <joysn71@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
>>  > >>  > >
>>  > >>  >
>>  > >>
>>  > >
>>  >
>> 
> 

Mime
View raw message