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
> > >>  > >
> > >>  >
> > >>
> > >
> >
>

Reply via email to