You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by go...@orange.fr on 2014/10/13 17:56:17 UTC

javax.persistence.EntityListeners is never called

Hello

I use javax.persistence.EntityListeners. The persistent classes of the entities are correctly added into persistence.xml. My test case works correctly with Hibernate and OpenJPA except that the annotated methods (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never called by OpenJPA whereas they are called by Hibernate. Am I missing anything obvious? Best regards.

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
I use Oracle JDK 1.7 update 71 with Netbeans 7.4 under Windows when I'm at work. I use OpenJDK 1.7 under Mageia Linux 4 at home. My original problem isn't fixed yet. I enabled PostLoadOnMerge but it doesn't change anything.

My patch is here:
# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: C:\Users\jgouesse\Documents\trunk
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java
--- openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java Base (BASE)
+++ openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java Locally Modified (Based On LOCAL)
@@ -1560,9 +1560,10 @@

// cache the JAXB XmlRootElement class if it is present so we do not
// have a hard-wired dependency on JAXB here
- Class xmlRootElementClass = null;
+ Class<? extends Annotation> xmlRootElementClass = null;
try {
- xmlRootElementClass = Class.forName("javax.xml.bind.annotation.XmlRootElement");
+ xmlRootElementClass = (Class<? extends Annotation>)
+ Class.forName("javax.xml.bind.annotation.XmlRootElement");
} catch (Exception e) {
}

Index: openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.java
--- openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.java Base (BASE)
+++ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/AnnotationPersistenceXMLMetaDataParser.java Locally Modified (Based On LOCAL)
@@ -18,6 +18,7 @@
*/
package org.apache.openjpa.persistence;

+import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
@@ -53,8 +54,8 @@

// cache the JAXB Xml... classes if they are present so we do not
// have a hard-wired dependency on JAXB here
- private Class xmlTypeClass = null;
- private Class xmlRootElementClass = null;
+ private Class<? extends Annotation> xmlTypeClass = null;
+ private Class<? extends Annotation> xmlRootElementClass = null;
private Class xmlAccessorTypeClass = null;
private Class xmlAttributeClass = null;
private Class xmlElementClass = null;
@@ -75,11 +76,11 @@
_conf = conf;
_log = conf.getLog(OpenJPAConfiguration.LOG_METADATA);
try {
- xmlTypeClass = Class.forName(
+ xmlTypeClass = (Class<? extends Annotation>) Class.forName(
"javax.xml.bind.annotation.XmlType");
xmlTypeName = xmlTypeClass.getMethod("name", null);
xmlTypeNamespace = xmlTypeClass.getMethod("namespace", null);
- xmlRootElementClass = Class.forName(
+ xmlRootElementClass = (Class<? extends Annotation>) Class.forName(
"javax.xml.bind.annotation.XmlRootElement");
xmlRootName = xmlRootElementClass.getMethod("name", null);
xmlRootNamespace = xmlRootElementClass.getMethod("namespace", null);







> Message du 17/10/14 17:02
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
>
I don't see your patch... and I also don't see this same problem when running in Eclipse. 

>
What vendor / version of java are you running? I remember seeing similar problems when running with early version of java 7 (or maybe it was 8.. I don't really remember)

>
Is your original problem resolved?


>
On Fri, Oct 17, 2014 at 9:22 AM,  wrote:
>
Please find enclosed my patch. It fixes the compile errors and it is better than a useless cast.
> 
> > Message du 16/10/14 18:32
> > De : "Rick Curtis"
> > A : "users" , gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > > I had to disable checkstyle and to fix a compile error to build OpenJPA.
> > The test passes.
> > Yes, sorry I just committed a fix for that. Please do an update and let me
> > know if you're still having compile problems.
> >
> > I think that you should have a separate listener class and have the
> > singleton bean injected into it.
> >
> 

> On Thu, Oct 16, 2014 at 11:08 AM,  wrote:
> >
> > > I had to disable checkstyle and to fix a compile error to build OpenJPA.
> > > The test passes.
> > >
> > > However, the contract of the annotation javax.ejb.Singleton isn't
> > > respected by OpenEJB whereas it is respected by Hibernate. This is the only
> > > difference that I have found. I just put a log message into the constructor
> > > of the annotated class.
> > >
> > >
> > >
> > >
> > > > Message du 15/10/14 17:25
> > > > De : "Rick Curtis"
> > > > A : "users" , gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > Yes, there are numerous unit tests, please take a look at the one that
> > > I've
> > > > noted below.
> > > >
> > > >
> > > https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java
> > > >
> > > > On Wed, Oct 15, 2014 at 10:00 AM, wrote:
> > > >
> > > > > Are there any unit tests that I can run and modify to reproduce my
> > > > > problem? This is typically what I do with JogAmp.
> > > > >
> > > > > > Message du 15/10/14 16:42
> > > > > > De : "Rick Curtis"
> > > > > > A : "users" , gouessej@orange.fr
> > > > > > Copie à :
> > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > >
> > > > > > >Getting rid of this property doesn't solve my problem.
> > > > > > Sorry about muddying the waters. As I stated, that suggestion isn't
> > > > > related
> > > > > > to the current problem... it is a best practice. That property is
> > > busted
> > > > > > and you can fairly easily get into deadlocks.
> > > > > >
> > > > > > I am still confused The reason @PostLoad isn't called is because your
> > > > > > snippets look good. Can I have you put together some sort of a
> > > > > recreatable
> > > > > > test? That will help speed up diagnosis.
> > > > > >
> > > > > > Thanks,
> > > > > > Rick
> > > > > >
> > > > > > On Wed, Oct 15, 2014 at 4:35 AM, wrote:
> > > > > >
> > > > > > > Getting rid of this property doesn't solve my problem.
> > > > > > >
> > > > > > > My listener:
> > > > > > >
> > > > > > > @Singleton
> > > > > > > public class MultiLangStringEntityListener {
> > > > > > >
> > > > > > > @PostLoad
> > > > > > > @SuppressWarnings("UseSpecificCatch")
> > > > > > > public void postLoad(Object entity) {
> > > > > > >
> > > > > > >
> > > > > > > An entity:
> > > > > > > @Entity
> > > > > > > @EntityListeners({MultiLangStringEntityListener.class})
> > > > > > > @Table(name = "THEME")
> > > > > > > @XmlRootElement(name = "Theme")
> > > > > > > @NamedQueries({
> > > > > > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM
> > > DmTheme
> > > > > d")})
> > > > > > > public class Theme implements Serializable {
> > > > > > > private static final long serialVersionUID = 1L;
> > > > > > > // @Max(value=?) @Min(value=?)//if you know range of your decimal
> > > > > fields
> > > > > > > consider using these annotations to enforce field validation
> > > > > > > @Id
> > > > > > > @Basic(optional = false)
> > > > > > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > > > > > "SEQ_THEME")
> > > > > > > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > > > > > > allocationSize = 1)
> > > > > > > @Column(name = "ID")
> > > > > > > private BigInteger id;
> > > > > > > @Embedded
> > > > > > > @AttributeOverrides({
> > > > > > > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > > > > > > nullable=false)),
> > > > > > > @AttributeOverride(name = "lang", column = @Column(insertable =
> > > false,
> > > > > > > updatable = false, name = "DESCR")),
> > > > > > > @AttributeOverride(name = "text", column = @Column(insertable =
> > > false,
> > > > > > > updatable = false, name = "DESCR"))
> > > > > > > })
> > > > > > > private MultiLangString descr;
> > > > > > >
> > > > > > >
> > > > > > > The embeddable class:
> > > > > > >
> > > > > > > @Embeddable
> > > > > > > public class MultiLangString implements Serializable {
> > > > > > >
> > > > > > > private static final long serialVersionUID = 1L;
> > > > > > > private String id;
> > > > > > > private String lang;
> > > > > > > private String text;
> > > > > > >
> > > > > > > public MultiLangString() {
> > > > > > > }
> > > > > > >
> > > > > > >
> > > > > > > Some of my entity classes use both @Embedded and @EmbeddedId but
> > > not on
> > > > > > > the same field. I don't know what is wrong as it still works with
> > > > > Hibernate
> > > > > > > whereas I try to stay far from its specific features as you can
> > > see in
> > > > > this
> > > > > > > bug report:
> > > > > > > https://hibernate.atlassian.net/browse/HHH-9437
> > > > > > >
> > > > > > >
> > > > > > > > Message du 14/10/14 17:45
> > > > > > > > De : "Rick Curtis"
> > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > Copie à :
> > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > >
> > > > > > > > One thing that jumps out of your p.xml is the
> > > openjpa.Multithreaded
> > > > > > > > property. I suggest you get rid of that property and ensure that
> > > you
> > > > > > > aren't
> > > > > > > > sharing EntityManager's across threads... but I don't think that
> > > is
> > > > > > > related
> > > > > > > > to the problem you are currently having.
> > > > > > > >
> > > > > > > > Can you post relevant snippets of your Entity?
> > > > > > > >
> > > > > > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > > > > > >
> > > > > > > > > Sorry for the confusion. No I'm not using those callbacks on an
> > > > > > > Embeddable
> > > > > > > > > but when I switched to OpenJPA, I remember that I had to add
> > > the
> > > > > > > classes
> > > > > > > > > with @Embeddable into persistence.xml whereas it wasn't
> > > necessary
> > > > > with
> > > > > > > > > Hibernate.
> > > > > > > > >
> > > > > > > > > The class that uses those callbacks uses the annotation
> > > @Singleton,
> > > > > > > > > removing it doesn't solve my problem.
> > > > > > > > >
> > > > > > > > > Please find enclosed the file.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Message du 14/10/14 17:31
> > > > > > > > > > De : "Rick Curtis"
> > > > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > > > Copie à :
> > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > 2.4.x is the latest.
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > If I understand your previous posts, are you using
> > > > > callbacks(@Preload,
> > > > > > > > > @Postload, etc, etc) on an Embeddable? If that is the case,
> > > I'm not
> > > > > > > sure if
> > > > > > > > > it is suppose to work? Can I have you post some
> > > Entity/embeddable
> > > > > > > snippets
> > > > > > > > > so we can better understand what you want to do?
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Rick
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > > > > > >
> > > > > > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent
> > > version if
> > > > > > > any.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > Message du 14/10/14 00:14
> > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > Copie à :
> > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > > called
> > > > > > > > > > >
> > > > > > > > > > > Hi,
> > > > > > > > > > > The complete trace can be turned on via this property in
> > > your
> > > > > > > p.xml:
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Good luck,
> > > > > > > > > > > Kevin
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi
> > > > > > > > > > > >
> > > > > > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or
> > > 2.3). I
> > > > > have
> > > > > > > > > looked at
> > > > > > > > > > > > the logs and I have already done my best to force the
> > > > > > > persistence of
> > > > > > > > > all
> > > > > > > > > > > > entity classes including those Hibernate was able to
> > > discover
> > > > > > > alone,
> > > > > > > > > for
> > > > > > > > > > > > example the class using @Embeddable. As I'm currently
> > > not at
> > > > > > > work, I
> > > > > > > > > can't
> > > > > > > > > > > > post the persistence.xml but I'll do it tomorrow. What
> > > > > should I
> > > > > > > turn
> > > > > > > > > on to
> > > > > > > > > > > > get some more trace? Thank you for your help.
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > > > Copie à :
> > > > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > > > > called
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > EntityListeners should work just fine with OpenJPA.
> > > What
> > > > > > > version of
> > > > > > > > > > > > > OpenJPA are you using? The basic support is documented
> > > > > here:
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > > > > > >
> > > > > > > > > > > > > Are there any other messages in the logs that indicate
> > > an
> > > > > > > issue?
> > > > > > > > > Have you
> > > > > > > > > > > > > tried turning on Trace to ensure that normal
> > > persistence
> > > > > > > > > processing is
> > > > > > > > > > > > > happening? Can you post your p.xml? Like I mentioned,
> > > this
> > > > > > > should
> > > > > > > > > all
> > > > > > > > > > > > > just work. We'll need a bit more context to help figure
> > > > > out the
> > > > > > > > > problem.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Kevin
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hello
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I use javax.persistence.EntityListeners. The
> > > persistent
> > > > > > > classes
> > > > > > > > > of the
> > > > > > > > > > > > > > entities are correctly added into persistence.xml. My
> > > > > test
> > > > > > > case
> > > > > > > > > works
> > > > > > > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > > > > > > annotated
> > > > > > > > > methods
> > > > > > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> > > > > @PostRemove) are
> > > > > > > > > never
> > > > > > > > > > > > called
> > > > > > > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I
> > > > > missing
> > > > > > > > > anything
> > > > > > > > > > > > > > obvious? Best regards.
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > --
> > > > > > > > > > Rick Curtis
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > *Rick Curtis*
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > *Rick Curtis*
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Rick Curtis*
> > > >
> > >
> >
> >
> >
> > --
>

> *Rick Curtis*
> >
>


> 

>
-- 
> Rick Curtis
>

Re: javax.persistence.EntityListeners is never called

Posted by Rick Curtis <cu...@gmail.com>.
I don't see your patch... and I also don't see this same problem when
running in Eclipse.

What vendor / version of java are you running? I remember seeing similar
problems when running with early version of java 7 (or maybe it was 8.. I
don't really remember)

Is your original problem resolved?

On Fri, Oct 17, 2014 at 9:22 AM, <go...@orange.fr> wrote:

> Please find enclosed my patch. It fixes the compile errors and it is
> better than a useless cast.
>
> > Message du 16/10/14 18:32
> > De : "Rick Curtis"
> > A : "users" , gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > > I had to disable checkstyle and to fix a compile error to build
> OpenJPA.
> > The test passes.
> > Yes, sorry I just committed a fix for that. Please do an update and let
> me
> > know if you're still having compile problems.
> >
> > I think that you should have a separate listener class and have the
> > singleton bean injected into it.
> >
> > On Thu, Oct 16, 2014 at 11:08 AM,  wrote:
> >
> > > I had to disable checkstyle and to fix a compile error to build
> OpenJPA.
> > > The test passes.
> > >
> > > However, the contract of the annotation javax.ejb.Singleton isn't
> > > respected by OpenEJB whereas it is respected by Hibernate. This is the
> only
> > > difference that I have found. I just put a log message into the
> constructor
> > > of the annotated class.
> > >
> > >
> > >
> > >
> > > > Message du 15/10/14 17:25
> > > > De : "Rick Curtis"
> > > > A : "users" , gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > Yes, there are numerous unit tests, please take a look at the one
> that
> > > I've
> > > > noted below.
> > > >
> > > >
> > >
> https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java
> > > >
> > > > On Wed, Oct 15, 2014 at 10:00 AM, wrote:
> > > >
> > > > > Are there any unit tests that I can run and modify to reproduce my
> > > > > problem? This is typically what I do with JogAmp.
> > > > >
> > > > > > Message du 15/10/14 16:42
> > > > > > De : "Rick Curtis"
> > > > > > A : "users" , gouessej@orange.fr
> > > > > > Copie à :
> > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > >
> > > > > > >Getting rid of this property doesn't solve my problem.
> > > > > > Sorry about muddying the waters. As I stated, that suggestion
> isn't
> > > > > related
> > > > > > to the current problem... it is a best practice. That property is
> > > busted
> > > > > > and you can fairly easily get into deadlocks.
> > > > > >
> > > > > > I am still confused The reason @PostLoad isn't called is because
> your
> > > > > > snippets look good. Can I have you put together some sort of a
> > > > > recreatable
> > > > > > test? That will help speed up diagnosis.
> > > > > >
> > > > > > Thanks,
> > > > > > Rick
> > > > > >
> > > > > > On Wed, Oct 15, 2014 at 4:35 AM, wrote:
> > > > > >
> > > > > > > Getting rid of this property doesn't solve my problem.
> > > > > > >
> > > > > > > My listener:
> > > > > > >
> > > > > > > @Singleton
> > > > > > > public class MultiLangStringEntityListener {
> > > > > > >
> > > > > > > @PostLoad
> > > > > > > @SuppressWarnings("UseSpecificCatch")
> > > > > > > public void postLoad(Object entity) {
> > > > > > >
> > > > > > >
> > > > > > > An entity:
> > > > > > > @Entity
> > > > > > > @EntityListeners({MultiLangStringEntityListener.class})
> > > > > > > @Table(name = "THEME")
> > > > > > > @XmlRootElement(name = "Theme")
> > > > > > > @NamedQueries({
> > > > > > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM
> > > DmTheme
> > > > > d")})
> > > > > > > public class Theme implements Serializable {
> > > > > > > private static final long serialVersionUID = 1L;
> > > > > > > // @Max(value=?) @Min(value=?)//if you know range of your
> decimal
> > > > > fields
> > > > > > > consider using these annotations to enforce field validation
> > > > > > > @Id
> > > > > > > @Basic(optional = false)
> > > > > > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > > > > > "SEQ_THEME")
> > > > > > > @SequenceGenerator(name = "SEQ_THEME", sequenceName =
> "SEQ_THEME",
> > > > > > > allocationSize = 1)
> > > > > > > @Column(name = "ID")
> > > > > > > private BigInteger id;
> > > > > > > @Embedded
> > > > > > > @AttributeOverrides({
> > > > > > > @AttributeOverride(name = "id", column = @Column(name =
> "DESCR",
> > > > > > > nullable=false)),
> > > > > > > @AttributeOverride(name = "lang", column = @Column(insertable =
> > > false,
> > > > > > > updatable = false, name = "DESCR")),
> > > > > > > @AttributeOverride(name = "text", column = @Column(insertable =
> > > false,
> > > > > > > updatable = false, name = "DESCR"))
> > > > > > > })
> > > > > > > private MultiLangString descr;
> > > > > > >
> > > > > > >
> > > > > > > The embeddable class:
> > > > > > >
> > > > > > > @Embeddable
> > > > > > > public class MultiLangString implements Serializable {
> > > > > > >
> > > > > > > private static final long serialVersionUID = 1L;
> > > > > > > private String id;
> > > > > > > private String lang;
> > > > > > > private String text;
> > > > > > >
> > > > > > > public MultiLangString() {
> > > > > > > }
> > > > > > >
> > > > > > >
> > > > > > > Some of my entity classes use both @Embedded and @EmbeddedId
> but
> > > not on
> > > > > > > the same field. I don't know what is wrong as it still works
> with
> > > > > Hibernate
> > > > > > > whereas I try to stay far from its specific features as you can
> > > see in
> > > > > this
> > > > > > > bug report:
> > > > > > > https://hibernate.atlassian.net/browse/HHH-9437
> > > > > > >
> > > > > > >
> > > > > > > > Message du 14/10/14 17:45
> > > > > > > > De : "Rick Curtis"
> > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > Copie à :
> > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > >
> > > > > > > > One thing that jumps out of your p.xml is the
> > > openjpa.Multithreaded
> > > > > > > > property. I suggest you get rid of that property and ensure
> that
> > > you
> > > > > > > aren't
> > > > > > > > sharing EntityManager's across threads... but I don't think
> that
> > > is
> > > > > > > related
> > > > > > > > to the problem you are currently having.
> > > > > > > >
> > > > > > > > Can you post relevant snippets of your Entity?
> > > > > > > >
> > > > > > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > > > > > >
> > > > > > > > > Sorry for the confusion. No I'm not using those callbacks
> on an
> > > > > > > Embeddable
> > > > > > > > > but when I switched to OpenJPA, I remember that I had to
> add
> > > the
> > > > > > > classes
> > > > > > > > > with @Embeddable into persistence.xml whereas it wasn't
> > > necessary
> > > > > with
> > > > > > > > > Hibernate.
> > > > > > > > >
> > > > > > > > > The class that uses those callbacks uses the annotation
> > > @Singleton,
> > > > > > > > > removing it doesn't solve my problem.
> > > > > > > > >
> > > > > > > > > Please find enclosed the file.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Message du 14/10/14 17:31
> > > > > > > > > > De : "Rick Curtis"
> > > > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > > > Copie à :
> > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> called
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > 2.4.x is the latest.
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > If I understand your previous posts, are you using
> > > > > callbacks(@Preload,
> > > > > > > > > @Postload, etc, etc) on an Embeddable? If that is the case,
> > > I'm not
> > > > > > > sure if
> > > > > > > > > it is suppose to work? Can I have you post some
> > > Entity/embeddable
> > > > > > > snippets
> > > > > > > > > so we can better understand what you want to do?
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Rick
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > > > > > >
> > > > > > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent
> > > version if
> > > > > > > any.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > Message du 14/10/14 00:14
> > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > Copie à :
> > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > > called
> > > > > > > > > > >
> > > > > > > > > > > Hi,
> > > > > > > > > > > The complete trace can be turned on via this property
> in
> > > your
> > > > > > > p.xml:
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Good luck,
> > > > > > > > > > > Kevin
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi
> > > > > > > > > > > >
> > > > > > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or
> > > 2.3). I
> > > > > have
> > > > > > > > > looked at
> > > > > > > > > > > > the logs and I have already done my best to force the
> > > > > > > persistence of
> > > > > > > > > all
> > > > > > > > > > > > entity classes including those Hibernate was able to
> > > discover
> > > > > > > alone,
> > > > > > > > > for
> > > > > > > > > > > > example the class using @Embeddable. As I'm currently
> > > not at
> > > > > > > work, I
> > > > > > > > > can't
> > > > > > > > > > > > post the persistence.xml but I'll do it tomorrow.
> What
> > > > > should I
> > > > > > > turn
> > > > > > > > > on to
> > > > > > > > > > > > get some more trace? Thank you for your help.
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > > > Copie à :
> > > > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is
> never
> > > > > called
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > EntityListeners should work just fine with OpenJPA.
> > > What
> > > > > > > version of
> > > > > > > > > > > > > OpenJPA are you using? The basic support is
> documented
> > > > > here:
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > > > > > >
> > > > > > > > > > > > > Are there any other messages in the logs that
> indicate
> > > an
> > > > > > > issue?
> > > > > > > > > Have you
> > > > > > > > > > > > > tried turning on Trace to ensure that normal
> > > persistence
> > > > > > > > > processing is
> > > > > > > > > > > > > happening? Can you post your p.xml? Like I
> mentioned,
> > > this
> > > > > > > should
> > > > > > > > > all
> > > > > > > > > > > > > just work. We'll need a bit more context to help
> figure
> > > > > out the
> > > > > > > > > problem.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Kevin
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hello
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I use javax.persistence.EntityListeners. The
> > > persistent
> > > > > > > classes
> > > > > > > > > of the
> > > > > > > > > > > > > > entities are correctly added into
> persistence.xml. My
> > > > > test
> > > > > > > case
> > > > > > > > > works
> > > > > > > > > > > > > > correctly with Hibernate and OpenJPA except that
> the
> > > > > > > annotated
> > > > > > > > > methods
> > > > > > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> > > > > @PostRemove) are
> > > > > > > > > never
> > > > > > > > > > > > called
> > > > > > > > > > > > > > by OpenJPA whereas they are called by Hibernate.
> Am I
> > > > > missing
> > > > > > > > > anything
> > > > > > > > > > > > > > obvious? Best regards.
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > --
> > > > > > > > > > Rick Curtis
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > *Rick Curtis*
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > *Rick Curtis*
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Rick Curtis*
> > > >
> > >
> >
> >
> >
> > --
> > *Rick Curtis*
> >
>



-- 
*Rick Curtis*

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
Please find enclosed my patch. It fixes the compile errors and it is better than a useless cast.

> Message du 16/10/14 18:32
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> > I had to disable checkstyle and to fix a compile error to build OpenJPA.
> The test passes.
> Yes, sorry I just committed a fix for that. Please do an update and let me
> know if you're still having compile problems.
> 
> I think that you should have a separate listener class and have the
> singleton bean injected into it.
> 
> On Thu, Oct 16, 2014 at 11:08 AM,  wrote:
> 
> > I had to disable checkstyle and to fix a compile error to build OpenJPA.
> > The test passes.
> >
> > However, the contract of the annotation javax.ejb.Singleton isn't
> > respected by OpenEJB whereas it is respected by Hibernate. This is the only
> > difference that I have found. I just put a log message into the constructor
> > of the annotated class.
> >
> >
> >
> >
> > > Message du 15/10/14 17:25
> > > De : "Rick Curtis"
> > > A : "users" , gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > Yes, there are numerous unit tests, please take a look at the one that
> > I've
> > > noted below.
> > >
> > >
> > https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java
> > >
> > > On Wed, Oct 15, 2014 at 10:00 AM, wrote:
> > >
> > > > Are there any unit tests that I can run and modify to reproduce my
> > > > problem? This is typically what I do with JogAmp.
> > > >
> > > > > Message du 15/10/14 16:42
> > > > > De : "Rick Curtis"
> > > > > A : "users" , gouessej@orange.fr
> > > > > Copie à :
> > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > >
> > > > > >Getting rid of this property doesn't solve my problem.
> > > > > Sorry about muddying the waters. As I stated, that suggestion isn't
> > > > related
> > > > > to the current problem... it is a best practice. That property is
> > busted
> > > > > and you can fairly easily get into deadlocks.
> > > > >
> > > > > I am still confused The reason @PostLoad isn't called is because your
> > > > > snippets look good. Can I have you put together some sort of a
> > > > recreatable
> > > > > test? That will help speed up diagnosis.
> > > > >
> > > > > Thanks,
> > > > > Rick
> > > > >
> > > > > On Wed, Oct 15, 2014 at 4:35 AM, wrote:
> > > > >
> > > > > > Getting rid of this property doesn't solve my problem.
> > > > > >
> > > > > > My listener:
> > > > > >
> > > > > > @Singleton
> > > > > > public class MultiLangStringEntityListener {
> > > > > >
> > > > > > @PostLoad
> > > > > > @SuppressWarnings("UseSpecificCatch")
> > > > > > public void postLoad(Object entity) {
> > > > > >
> > > > > >
> > > > > > An entity:
> > > > > > @Entity
> > > > > > @EntityListeners({MultiLangStringEntityListener.class})
> > > > > > @Table(name = "THEME")
> > > > > > @XmlRootElement(name = "Theme")
> > > > > > @NamedQueries({
> > > > > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM
> > DmTheme
> > > > d")})
> > > > > > public class Theme implements Serializable {
> > > > > > private static final long serialVersionUID = 1L;
> > > > > > // @Max(value=?) @Min(value=?)//if you know range of your decimal
> > > > fields
> > > > > > consider using these annotations to enforce field validation
> > > > > > @Id
> > > > > > @Basic(optional = false)
> > > > > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > > > > "SEQ_THEME")
> > > > > > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > > > > > allocationSize = 1)
> > > > > > @Column(name = "ID")
> > > > > > private BigInteger id;
> > > > > > @Embedded
> > > > > > @AttributeOverrides({
> > > > > > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > > > > > nullable=false)),
> > > > > > @AttributeOverride(name = "lang", column = @Column(insertable =
> > false,
> > > > > > updatable = false, name = "DESCR")),
> > > > > > @AttributeOverride(name = "text", column = @Column(insertable =
> > false,
> > > > > > updatable = false, name = "DESCR"))
> > > > > > })
> > > > > > private MultiLangString descr;
> > > > > >
> > > > > >
> > > > > > The embeddable class:
> > > > > >
> > > > > > @Embeddable
> > > > > > public class MultiLangString implements Serializable {
> > > > > >
> > > > > > private static final long serialVersionUID = 1L;
> > > > > > private String id;
> > > > > > private String lang;
> > > > > > private String text;
> > > > > >
> > > > > > public MultiLangString() {
> > > > > > }
> > > > > >
> > > > > >
> > > > > > Some of my entity classes use both @Embedded and @EmbeddedId but
> > not on
> > > > > > the same field. I don't know what is wrong as it still works with
> > > > Hibernate
> > > > > > whereas I try to stay far from its specific features as you can
> > see in
> > > > this
> > > > > > bug report:
> > > > > > https://hibernate.atlassian.net/browse/HHH-9437
> > > > > >
> > > > > >
> > > > > > > Message du 14/10/14 17:45
> > > > > > > De : "Rick Curtis"
> > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > Copie à :
> > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > >
> > > > > > > One thing that jumps out of your p.xml is the
> > openjpa.Multithreaded
> > > > > > > property. I suggest you get rid of that property and ensure that
> > you
> > > > > > aren't
> > > > > > > sharing EntityManager's across threads... but I don't think that
> > is
> > > > > > related
> > > > > > > to the problem you are currently having.
> > > > > > >
> > > > > > > Can you post relevant snippets of your Entity?
> > > > > > >
> > > > > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > > > > >
> > > > > > > > Sorry for the confusion. No I'm not using those callbacks on an
> > > > > > Embeddable
> > > > > > > > but when I switched to OpenJPA, I remember that I had to add
> > the
> > > > > > classes
> > > > > > > > with @Embeddable into persistence.xml whereas it wasn't
> > necessary
> > > > with
> > > > > > > > Hibernate.
> > > > > > > >
> > > > > > > > The class that uses those callbacks uses the annotation
> > @Singleton,
> > > > > > > > removing it doesn't solve my problem.
> > > > > > > >
> > > > > > > > Please find enclosed the file.
> > > > > > > >
> > > > > > > >
> > > > > > > > > Message du 14/10/14 17:31
> > > > > > > > > De : "Rick Curtis"
> > > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > > Copie à :
> > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > > >
> > > > > > > > >
> > > > > > > > 2.4.x is the latest.
> > > > > > > >
> > > > > > > > >
> > > > > > > > If I understand your previous posts, are you using
> > > > callbacks(@Preload,
> > > > > > > > @Postload, etc, etc) on an Embeddable? If that is the case,
> > I'm not
> > > > > > sure if
> > > > > > > > it is suppose to work? Can I have you post some
> > Entity/embeddable
> > > > > > snippets
> > > > > > > > so we can better understand what you want to do?
> > > > > > > >
> > > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Rick
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > > > > >
> > > > > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent
> > version if
> > > > > > any.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Message du 14/10/14 00:14
> > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > Copie à :
> > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > called
> > > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > > The complete trace can be turned on via this property in
> > your
> > > > > > p.xml:
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Good luck,
> > > > > > > > > > Kevin
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > > > > >
> > > > > > > > > > > Hi
> > > > > > > > > > >
> > > > > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or
> > 2.3). I
> > > > have
> > > > > > > > looked at
> > > > > > > > > > > the logs and I have already done my best to force the
> > > > > > persistence of
> > > > > > > > all
> > > > > > > > > > > entity classes including those Hibernate was able to
> > discover
> > > > > > alone,
> > > > > > > > for
> > > > > > > > > > > example the class using @Embeddable. As I'm currently
> > not at
> > > > > > work, I
> > > > > > > > can't
> > > > > > > > > > > post the persistence.xml but I'll do it tomorrow. What
> > > > should I
> > > > > > turn
> > > > > > > > on to
> > > > > > > > > > > get some more trace? Thank you for your help.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > > Copie à :
> > > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > > > called
> > > > > > > > > > > >
> > > > > > > > > > > > Hi,
> > > > > > > > > > > > EntityListeners should work just fine with OpenJPA.
> > What
> > > > > > version of
> > > > > > > > > > > > OpenJPA are you using? The basic support is documented
> > > > here:
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > > > > >
> > > > > > > > > > > > Are there any other messages in the logs that indicate
> > an
> > > > > > issue?
> > > > > > > > Have you
> > > > > > > > > > > > tried turning on Trace to ensure that normal
> > persistence
> > > > > > > > processing is
> > > > > > > > > > > > happening? Can you post your p.xml? Like I mentioned,
> > this
> > > > > > should
> > > > > > > > all
> > > > > > > > > > > > just work. We'll need a bit more context to help figure
> > > > out the
> > > > > > > > problem.
> > > > > > > > > > > >
> > > > > > > > > > > > Kevin
> > > > > > > > > > > >
> > > > > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hello
> > > > > > > > > > > > >
> > > > > > > > > > > > > I use javax.persistence.EntityListeners. The
> > persistent
> > > > > > classes
> > > > > > > > of the
> > > > > > > > > > > > > entities are correctly added into persistence.xml. My
> > > > test
> > > > > > case
> > > > > > > > works
> > > > > > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > > > > > annotated
> > > > > > > > methods
> > > > > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> > > > @PostRemove) are
> > > > > > > > never
> > > > > > > > > > > called
> > > > > > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I
> > > > missing
> > > > > > > > anything
> > > > > > > > > > > > > obvious? Best regards.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > --
> > > > > > > > > Rick Curtis
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > *Rick Curtis*
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Rick Curtis*
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Rick Curtis*
> > >
> >
> 
> 
> 
> -- 
> *Rick Curtis*
>

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
I still have a compile error here, line 1583:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java?view=markup

Adding a cast to Boolean seems to fix it but actually, it should work as is, Netbeans 7.4 (with Java 1.7) probably does something wrong. It claims that J2DoPrivHelper.isAnnotationPresentAction() returns a PrivilegedAction whereas it returns a PrivilegedAction.




> Message du 16/10/14 18:32
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> > I had to disable checkstyle and to fix a compile error to build OpenJPA.
> The test passes.
> Yes, sorry I just committed a fix for that. Please do an update and let me
> know if you're still having compile problems.
> 
> I think that you should have a separate listener class and have the
> singleton bean injected into it.
> 
> On Thu, Oct 16, 2014 at 11:08 AM,  wrote:
> 
> > I had to disable checkstyle and to fix a compile error to build OpenJPA.
> > The test passes.
> >
> > However, the contract of the annotation javax.ejb.Singleton isn't
> > respected by OpenEJB whereas it is respected by Hibernate. This is the only
> > difference that I have found. I just put a log message into the constructor
> > of the annotated class.
> >
> >
> >
> >
> > > Message du 15/10/14 17:25
> > > De : "Rick Curtis"
> > > A : "users" , gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > Yes, there are numerous unit tests, please take a look at the one that
> > I've
> > > noted below.
> > >
> > >
> > https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java
> > >
> > > On Wed, Oct 15, 2014 at 10:00 AM, wrote:
> > >
> > > > Are there any unit tests that I can run and modify to reproduce my
> > > > problem? This is typically what I do with JogAmp.
> > > >
> > > > > Message du 15/10/14 16:42
> > > > > De : "Rick Curtis"
> > > > > A : "users" , gouessej@orange.fr
> > > > > Copie à :
> > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > >
> > > > > >Getting rid of this property doesn't solve my problem.
> > > > > Sorry about muddying the waters. As I stated, that suggestion isn't
> > > > related
> > > > > to the current problem... it is a best practice. That property is
> > busted
> > > > > and you can fairly easily get into deadlocks.
> > > > >
> > > > > I am still confused The reason @PostLoad isn't called is because your
> > > > > snippets look good. Can I have you put together some sort of a
> > > > recreatable
> > > > > test? That will help speed up diagnosis.
> > > > >
> > > > > Thanks,
> > > > > Rick
> > > > >
> > > > > On Wed, Oct 15, 2014 at 4:35 AM, wrote:
> > > > >
> > > > > > Getting rid of this property doesn't solve my problem.
> > > > > >
> > > > > > My listener:
> > > > > >
> > > > > > @Singleton
> > > > > > public class MultiLangStringEntityListener {
> > > > > >
> > > > > > @PostLoad
> > > > > > @SuppressWarnings("UseSpecificCatch")
> > > > > > public void postLoad(Object entity) {
> > > > > >
> > > > > >
> > > > > > An entity:
> > > > > > @Entity
> > > > > > @EntityListeners({MultiLangStringEntityListener.class})
> > > > > > @Table(name = "THEME")
> > > > > > @XmlRootElement(name = "Theme")
> > > > > > @NamedQueries({
> > > > > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM
> > DmTheme
> > > > d")})
> > > > > > public class Theme implements Serializable {
> > > > > > private static final long serialVersionUID = 1L;
> > > > > > // @Max(value=?) @Min(value=?)//if you know range of your decimal
> > > > fields
> > > > > > consider using these annotations to enforce field validation
> > > > > > @Id
> > > > > > @Basic(optional = false)
> > > > > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > > > > "SEQ_THEME")
> > > > > > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > > > > > allocationSize = 1)
> > > > > > @Column(name = "ID")
> > > > > > private BigInteger id;
> > > > > > @Embedded
> > > > > > @AttributeOverrides({
> > > > > > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > > > > > nullable=false)),
> > > > > > @AttributeOverride(name = "lang", column = @Column(insertable =
> > false,
> > > > > > updatable = false, name = "DESCR")),
> > > > > > @AttributeOverride(name = "text", column = @Column(insertable =
> > false,
> > > > > > updatable = false, name = "DESCR"))
> > > > > > })
> > > > > > private MultiLangString descr;
> > > > > >
> > > > > >
> > > > > > The embeddable class:
> > > > > >
> > > > > > @Embeddable
> > > > > > public class MultiLangString implements Serializable {
> > > > > >
> > > > > > private static final long serialVersionUID = 1L;
> > > > > > private String id;
> > > > > > private String lang;
> > > > > > private String text;
> > > > > >
> > > > > > public MultiLangString() {
> > > > > > }
> > > > > >
> > > > > >
> > > > > > Some of my entity classes use both @Embedded and @EmbeddedId but
> > not on
> > > > > > the same field. I don't know what is wrong as it still works with
> > > > Hibernate
> > > > > > whereas I try to stay far from its specific features as you can
> > see in
> > > > this
> > > > > > bug report:
> > > > > > https://hibernate.atlassian.net/browse/HHH-9437
> > > > > >
> > > > > >
> > > > > > > Message du 14/10/14 17:45
> > > > > > > De : "Rick Curtis"
> > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > Copie à :
> > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > >
> > > > > > > One thing that jumps out of your p.xml is the
> > openjpa.Multithreaded
> > > > > > > property. I suggest you get rid of that property and ensure that
> > you
> > > > > > aren't
> > > > > > > sharing EntityManager's across threads... but I don't think that
> > is
> > > > > > related
> > > > > > > to the problem you are currently having.
> > > > > > >
> > > > > > > Can you post relevant snippets of your Entity?
> > > > > > >
> > > > > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > > > > >
> > > > > > > > Sorry for the confusion. No I'm not using those callbacks on an
> > > > > > Embeddable
> > > > > > > > but when I switched to OpenJPA, I remember that I had to add
> > the
> > > > > > classes
> > > > > > > > with @Embeddable into persistence.xml whereas it wasn't
> > necessary
> > > > with
> > > > > > > > Hibernate.
> > > > > > > >
> > > > > > > > The class that uses those callbacks uses the annotation
> > @Singleton,
> > > > > > > > removing it doesn't solve my problem.
> > > > > > > >
> > > > > > > > Please find enclosed the file.
> > > > > > > >
> > > > > > > >
> > > > > > > > > Message du 14/10/14 17:31
> > > > > > > > > De : "Rick Curtis"
> > > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > > Copie à :
> > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > > >
> > > > > > > > >
> > > > > > > > 2.4.x is the latest.
> > > > > > > >
> > > > > > > > >
> > > > > > > > If I understand your previous posts, are you using
> > > > callbacks(@Preload,
> > > > > > > > @Postload, etc, etc) on an Embeddable? If that is the case,
> > I'm not
> > > > > > sure if
> > > > > > > > it is suppose to work? Can I have you post some
> > Entity/embeddable
> > > > > > snippets
> > > > > > > > so we can better understand what you want to do?
> > > > > > > >
> > > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Rick
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > > > > >
> > > > > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent
> > version if
> > > > > > any.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Message du 14/10/14 00:14
> > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > Copie à :
> > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > called
> > > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > > The complete trace can be turned on via this property in
> > your
> > > > > > p.xml:
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Good luck,
> > > > > > > > > > Kevin
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > > > > >
> > > > > > > > > > > Hi
> > > > > > > > > > >
> > > > > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or
> > 2.3). I
> > > > have
> > > > > > > > looked at
> > > > > > > > > > > the logs and I have already done my best to force the
> > > > > > persistence of
> > > > > > > > all
> > > > > > > > > > > entity classes including those Hibernate was able to
> > discover
> > > > > > alone,
> > > > > > > > for
> > > > > > > > > > > example the class using @Embeddable. As I'm currently
> > not at
> > > > > > work, I
> > > > > > > > can't
> > > > > > > > > > > post the persistence.xml but I'll do it tomorrow. What
> > > > should I
> > > > > > turn
> > > > > > > > on to
> > > > > > > > > > > get some more trace? Thank you for your help.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > > Copie à :
> > > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > > > called
> > > > > > > > > > > >
> > > > > > > > > > > > Hi,
> > > > > > > > > > > > EntityListeners should work just fine with OpenJPA.
> > What
> > > > > > version of
> > > > > > > > > > > > OpenJPA are you using? The basic support is documented
> > > > here:
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > > > > >
> > > > > > > > > > > > Are there any other messages in the logs that indicate
> > an
> > > > > > issue?
> > > > > > > > Have you
> > > > > > > > > > > > tried turning on Trace to ensure that normal
> > persistence
> > > > > > > > processing is
> > > > > > > > > > > > happening? Can you post your p.xml? Like I mentioned,
> > this
> > > > > > should
> > > > > > > > all
> > > > > > > > > > > > just work. We'll need a bit more context to help figure
> > > > out the
> > > > > > > > problem.
> > > > > > > > > > > >
> > > > > > > > > > > > Kevin
> > > > > > > > > > > >
> > > > > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hello
> > > > > > > > > > > > >
> > > > > > > > > > > > > I use javax.persistence.EntityListeners. The
> > persistent
> > > > > > classes
> > > > > > > > of the
> > > > > > > > > > > > > entities are correctly added into persistence.xml. My
> > > > test
> > > > > > case
> > > > > > > > works
> > > > > > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > > > > > annotated
> > > > > > > > methods
> > > > > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> > > > @PostRemove) are
> > > > > > > > never
> > > > > > > > > > > called
> > > > > > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I
> > > > missing
> > > > > > > > anything
> > > > > > > > > > > > > obvious? Best regards.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > --
> > > > > > > > > Rick Curtis
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > *Rick Curtis*
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Rick Curtis*
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Rick Curtis*
> > >
> >
> 
> 
> 
> -- 
> *Rick Curtis*
>

Re: javax.persistence.EntityListeners is never called

Posted by Rick Curtis <cu...@gmail.com>.
> I had to disable checkstyle and to fix a compile error to build OpenJPA.
The test passes.
Yes, sorry I just committed a fix for that. Please do an update and let me
know if you're still having compile problems.

I think that you should have a separate listener class and have the
singleton bean injected into it.

On Thu, Oct 16, 2014 at 11:08 AM, <go...@orange.fr> wrote:

> I had to disable checkstyle and to fix a compile error to build OpenJPA.
> The test passes.
>
> However, the contract of the annotation javax.ejb.Singleton isn't
> respected by OpenEJB whereas it is respected by Hibernate. This is the only
> difference that I have found. I just put a log message into the constructor
> of the annotated class.
>
>
>
>
> > Message du 15/10/14 17:25
> > De : "Rick Curtis"
> > A : "users" , gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > Yes, there are numerous unit tests, please take a look at the one that
> I've
> > noted below.
> >
> >
> https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java
> >
> > On Wed, Oct 15, 2014 at 10:00 AM,  wrote:
> >
> > > Are there any unit tests that I can run and modify to reproduce my
> > > problem? This is typically what I do with JogAmp.
> > >
> > > > Message du 15/10/14 16:42
> > > > De : "Rick Curtis"
> > > > A : "users" , gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > >Getting rid of this property doesn't solve my problem.
> > > > Sorry about muddying the waters. As I stated, that suggestion isn't
> > > related
> > > > to the current problem... it is a best practice. That property is
> busted
> > > > and you can fairly easily get into deadlocks.
> > > >
> > > > I am still confused The reason @PostLoad isn't called is because your
> > > > snippets look good. Can I have you put together some sort of a
> > > recreatable
> > > > test? That will help speed up diagnosis.
> > > >
> > > > Thanks,
> > > > Rick
> > > >
> > > > On Wed, Oct 15, 2014 at 4:35 AM, wrote:
> > > >
> > > > > Getting rid of this property doesn't solve my problem.
> > > > >
> > > > > My listener:
> > > > >
> > > > > @Singleton
> > > > > public class MultiLangStringEntityListener {
> > > > >
> > > > > @PostLoad
> > > > > @SuppressWarnings("UseSpecificCatch")
> > > > > public void postLoad(Object entity) {
> > > > >
> > > > >
> > > > > An entity:
> > > > > @Entity
> > > > > @EntityListeners({MultiLangStringEntityListener.class})
> > > > > @Table(name = "THEME")
> > > > > @XmlRootElement(name = "Theme")
> > > > > @NamedQueries({
> > > > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM
> DmTheme
> > > d")})
> > > > > public class Theme implements Serializable {
> > > > > private static final long serialVersionUID = 1L;
> > > > > // @Max(value=?) @Min(value=?)//if you know range of your decimal
> > > fields
> > > > > consider using these annotations to enforce field validation
> > > > > @Id
> > > > > @Basic(optional = false)
> > > > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > > > "SEQ_THEME")
> > > > > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > > > > allocationSize = 1)
> > > > > @Column(name = "ID")
> > > > > private BigInteger id;
> > > > > @Embedded
> > > > > @AttributeOverrides({
> > > > > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > > > > nullable=false)),
> > > > > @AttributeOverride(name = "lang", column = @Column(insertable =
> false,
> > > > > updatable = false, name = "DESCR")),
> > > > > @AttributeOverride(name = "text", column = @Column(insertable =
> false,
> > > > > updatable = false, name = "DESCR"))
> > > > > })
> > > > > private MultiLangString descr;
> > > > >
> > > > >
> > > > > The embeddable class:
> > > > >
> > > > > @Embeddable
> > > > > public class MultiLangString implements Serializable {
> > > > >
> > > > > private static final long serialVersionUID = 1L;
> > > > > private String id;
> > > > > private String lang;
> > > > > private String text;
> > > > >
> > > > > public MultiLangString() {
> > > > > }
> > > > >
> > > > >
> > > > > Some of my entity classes use both @Embedded and @EmbeddedId but
> not on
> > > > > the same field. I don't know what is wrong as it still works with
> > > Hibernate
> > > > > whereas I try to stay far from its specific features as you can
> see in
> > > this
> > > > > bug report:
> > > > > https://hibernate.atlassian.net/browse/HHH-9437
> > > > >
> > > > >
> > > > > > Message du 14/10/14 17:45
> > > > > > De : "Rick Curtis"
> > > > > > A : "users" , gouessej@orange.fr
> > > > > > Copie à :
> > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > >
> > > > > > One thing that jumps out of your p.xml is the
> openjpa.Multithreaded
> > > > > > property. I suggest you get rid of that property and ensure that
> you
> > > > > aren't
> > > > > > sharing EntityManager's across threads... but I don't think that
> is
> > > > > related
> > > > > > to the problem you are currently having.
> > > > > >
> > > > > > Can you post relevant snippets of your Entity?
> > > > > >
> > > > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > > > >
> > > > > > > Sorry for the confusion. No I'm not using those callbacks on an
> > > > > Embeddable
> > > > > > > but when I switched to OpenJPA, I remember that I had to add
> the
> > > > > classes
> > > > > > > with @Embeddable into persistence.xml whereas it wasn't
> necessary
> > > with
> > > > > > > Hibernate.
> > > > > > >
> > > > > > > The class that uses those callbacks uses the annotation
> @Singleton,
> > > > > > > removing it doesn't solve my problem.
> > > > > > >
> > > > > > > Please find enclosed the file.
> > > > > > >
> > > > > > >
> > > > > > > > Message du 14/10/14 17:31
> > > > > > > > De : "Rick Curtis"
> > > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > > Copie à :
> > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > >
> > > > > > > >
> > > > > > > 2.4.x is the latest.
> > > > > > >
> > > > > > > >
> > > > > > > If I understand your previous posts, are you using
> > > callbacks(@Preload,
> > > > > > > @Postload, etc, etc) on an Embeddable? If that is the case,
> I'm not
> > > > > sure if
> > > > > > > it is suppose to work? Can I have you post some
> Entity/embeddable
> > > > > snippets
> > > > > > > so we can better understand what you want to do?
> > > > > > >
> > > > > > > >
> > > > > > > Thanks,
> > > > > > > Rick
> > > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > > > >
> > > > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent
> version if
> > > > > any.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > > Message du 14/10/14 00:14
> > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > Copie à :
> > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> called
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > > The complete trace can be turned on via this property in
> your
> > > > > p.xml:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Good luck,
> > > > > > > > > Kevin
> > > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > > > >
> > > > > > > > > > Hi
> > > > > > > > > >
> > > > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or
> 2.3). I
> > > have
> > > > > > > looked at
> > > > > > > > > > the logs and I have already done my best to force the
> > > > > persistence of
> > > > > > > all
> > > > > > > > > > entity classes including those Hibernate was able to
> discover
> > > > > alone,
> > > > > > > for
> > > > > > > > > > example the class using @Embeddable. As I'm currently
> not at
> > > > > work, I
> > > > > > > can't
> > > > > > > > > > post the persistence.xml but I'll do it tomorrow. What
> > > should I
> > > > > turn
> > > > > > > on to
> > > > > > > > > > get some more trace? Thank you for your help.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > > Copie à :
> > > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > > called
> > > > > > > > > > >
> > > > > > > > > > > Hi,
> > > > > > > > > > > EntityListeners should work just fine with OpenJPA.
> What
> > > > > version of
> > > > > > > > > > > OpenJPA are you using? The basic support is documented
> > > here:
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > >
> > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > > > >
> > > > > > > > > > > Are there any other messages in the logs that indicate
> an
> > > > > issue?
> > > > > > > Have you
> > > > > > > > > > > tried turning on Trace to ensure that normal
> persistence
> > > > > > > processing is
> > > > > > > > > > > happening? Can you post your p.xml? Like I mentioned,
> this
> > > > > should
> > > > > > > all
> > > > > > > > > > > just work. We'll need a bit more context to help figure
> > > out the
> > > > > > > problem.
> > > > > > > > > > >
> > > > > > > > > > > Kevin
> > > > > > > > > > >
> > > > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hello
> > > > > > > > > > > >
> > > > > > > > > > > > I use javax.persistence.EntityListeners. The
> persistent
> > > > > classes
> > > > > > > of the
> > > > > > > > > > > > entities are correctly added into persistence.xml. My
> > > test
> > > > > case
> > > > > > > works
> > > > > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > > > > annotated
> > > > > > > methods
> > > > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> > > @PostRemove) are
> > > > > > > never
> > > > > > > > > > called
> > > > > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I
> > > missing
> > > > > > > anything
> > > > > > > > > > > > obvious? Best regards.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > --
> > > > > > > > Rick Curtis
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > *Rick Curtis*
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Rick Curtis*
> > > >
> > >
> >
> >
> >
> > --
> > *Rick Curtis*
> >
>



-- 
*Rick Curtis*

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
I had to disable checkstyle and to fix a compile error to build OpenJPA. The test passes.

However, the contract of the annotation javax.ejb.Singleton isn't respected by OpenEJB whereas it is respected by Hibernate. This is the only difference that I have found. I just put a log message into the constructor of the annotated class.




> Message du 15/10/14 17:25
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> Yes, there are numerous unit tests, please take a look at the one that I've
> noted below.
> 
> https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java
> 
> On Wed, Oct 15, 2014 at 10:00 AM,  wrote:
> 
> > Are there any unit tests that I can run and modify to reproduce my
> > problem? This is typically what I do with JogAmp.
> >
> > > Message du 15/10/14 16:42
> > > De : "Rick Curtis"
> > > A : "users" , gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > >Getting rid of this property doesn't solve my problem.
> > > Sorry about muddying the waters. As I stated, that suggestion isn't
> > related
> > > to the current problem... it is a best practice. That property is busted
> > > and you can fairly easily get into deadlocks.
> > >
> > > I am still confused The reason @PostLoad isn't called is because your
> > > snippets look good. Can I have you put together some sort of a
> > recreatable
> > > test? That will help speed up diagnosis.
> > >
> > > Thanks,
> > > Rick
> > >
> > > On Wed, Oct 15, 2014 at 4:35 AM, wrote:
> > >
> > > > Getting rid of this property doesn't solve my problem.
> > > >
> > > > My listener:
> > > >
> > > > @Singleton
> > > > public class MultiLangStringEntityListener {
> > > >
> > > > @PostLoad
> > > > @SuppressWarnings("UseSpecificCatch")
> > > > public void postLoad(Object entity) {
> > > >
> > > >
> > > > An entity:
> > > > @Entity
> > > > @EntityListeners({MultiLangStringEntityListener.class})
> > > > @Table(name = "THEME")
> > > > @XmlRootElement(name = "Theme")
> > > > @NamedQueries({
> > > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM DmTheme
> > d")})
> > > > public class Theme implements Serializable {
> > > > private static final long serialVersionUID = 1L;
> > > > // @Max(value=?) @Min(value=?)//if you know range of your decimal
> > fields
> > > > consider using these annotations to enforce field validation
> > > > @Id
> > > > @Basic(optional = false)
> > > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > > "SEQ_THEME")
> > > > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > > > allocationSize = 1)
> > > > @Column(name = "ID")
> > > > private BigInteger id;
> > > > @Embedded
> > > > @AttributeOverrides({
> > > > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > > > nullable=false)),
> > > > @AttributeOverride(name = "lang", column = @Column(insertable = false,
> > > > updatable = false, name = "DESCR")),
> > > > @AttributeOverride(name = "text", column = @Column(insertable = false,
> > > > updatable = false, name = "DESCR"))
> > > > })
> > > > private MultiLangString descr;
> > > >
> > > >
> > > > The embeddable class:
> > > >
> > > > @Embeddable
> > > > public class MultiLangString implements Serializable {
> > > >
> > > > private static final long serialVersionUID = 1L;
> > > > private String id;
> > > > private String lang;
> > > > private String text;
> > > >
> > > > public MultiLangString() {
> > > > }
> > > >
> > > >
> > > > Some of my entity classes use both @Embedded and @EmbeddedId but not on
> > > > the same field. I don't know what is wrong as it still works with
> > Hibernate
> > > > whereas I try to stay far from its specific features as you can see in
> > this
> > > > bug report:
> > > > https://hibernate.atlassian.net/browse/HHH-9437
> > > >
> > > >
> > > > > Message du 14/10/14 17:45
> > > > > De : "Rick Curtis"
> > > > > A : "users" , gouessej@orange.fr
> > > > > Copie à :
> > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > >
> > > > > One thing that jumps out of your p.xml is the openjpa.Multithreaded
> > > > > property. I suggest you get rid of that property and ensure that you
> > > > aren't
> > > > > sharing EntityManager's across threads... but I don't think that is
> > > > related
> > > > > to the problem you are currently having.
> > > > >
> > > > > Can you post relevant snippets of your Entity?
> > > > >
> > > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > > >
> > > > > > Sorry for the confusion. No I'm not using those callbacks on an
> > > > Embeddable
> > > > > > but when I switched to OpenJPA, I remember that I had to add the
> > > > classes
> > > > > > with @Embeddable into persistence.xml whereas it wasn't necessary
> > with
> > > > > > Hibernate.
> > > > > >
> > > > > > The class that uses those callbacks uses the annotation @Singleton,
> > > > > > removing it doesn't solve my problem.
> > > > > >
> > > > > > Please find enclosed the file.
> > > > > >
> > > > > >
> > > > > > > Message du 14/10/14 17:31
> > > > > > > De : "Rick Curtis"
> > > > > > > A : "users" , gouessej@orange.fr
> > > > > > > Copie à :
> > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > >
> > > > > > >
> > > > > > 2.4.x is the latest.
> > > > > >
> > > > > > >
> > > > > > If I understand your previous posts, are you using
> > callbacks(@Preload,
> > > > > > @Postload, etc, etc) on an Embeddable? If that is the case, I'm not
> > > > sure if
> > > > > > it is suppose to work? Can I have you post some Entity/embeddable
> > > > snippets
> > > > > > so we can better understand what you want to do?
> > > > > >
> > > > > > >
> > > > > > Thanks,
> > > > > > Rick
> > > > > > >
> > > > > >
> > > > > > >
> > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > > >
> > > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent version if
> > > > any.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > Message du 14/10/14 00:14
> > > > > > > > De : "Kevin Sutter"
> > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > Copie à :
> > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > > The complete trace can be turned on via this property in your
> > > > p.xml:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Good luck,
> > > > > > > > Kevin
> > > > > > >
> > > > > >
> > > > > > >
> > > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > > >
> > > > > > > > > Hi
> > > > > > > > >
> > > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I
> > have
> > > > > > looked at
> > > > > > > > > the logs and I have already done my best to force the
> > > > persistence of
> > > > > > all
> > > > > > > > > entity classes including those Hibernate was able to discover
> > > > alone,
> > > > > > for
> > > > > > > > > example the class using @Embeddable. As I'm currently not at
> > > > work, I
> > > > > > can't
> > > > > > > > > post the persistence.xml but I'll do it tomorrow. What
> > should I
> > > > turn
> > > > > > on to
> > > > > > > > > get some more trace? Thank you for your help.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > > Copie à :
> > > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> > called
> > > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > > EntityListeners should work just fine with OpenJPA. What
> > > > version of
> > > > > > > > > > OpenJPA are you using? The basic support is documented
> > here:
> > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > > >
> > > > > > > > > > Are there any other messages in the logs that indicate an
> > > > issue?
> > > > > > Have you
> > > > > > > > > > tried turning on Trace to ensure that normal persistence
> > > > > > processing is
> > > > > > > > > > happening? Can you post your p.xml? Like I mentioned, this
> > > > should
> > > > > > all
> > > > > > > > > > just work. We'll need a bit more context to help figure
> > out the
> > > > > > problem.
> > > > > > > > > >
> > > > > > > > > > Kevin
> > > > > > > > > >
> > > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > > >
> > > > > > > > > > > Hello
> > > > > > > > > > >
> > > > > > > > > > > I use javax.persistence.EntityListeners. The persistent
> > > > classes
> > > > > > of the
> > > > > > > > > > > entities are correctly added into persistence.xml. My
> > test
> > > > case
> > > > > > works
> > > > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > > > annotated
> > > > > > methods
> > > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> > @PostRemove) are
> > > > > > never
> > > > > > > > > called
> > > > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I
> > missing
> > > > > > anything
> > > > > > > > > > > obvious? Best regards.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > >
> > > > > > >
> > > > > > --
> > > > > > > Rick Curtis
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Rick Curtis*
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Rick Curtis*
> > >
> >
> 
> 
> 
> -- 
> *Rick Curtis*
>

Re: javax.persistence.EntityListeners is never called

Posted by Rick Curtis <cu...@gmail.com>.
Yes, there are numerous unit tests, please take a look at the one that I've
noted below.

https://svn.apache.org/repos/asf/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/callbacks/TestEntityListeners.java

On Wed, Oct 15, 2014 at 10:00 AM, <go...@orange.fr> wrote:

> Are there any unit tests that I can run and modify to reproduce my
> problem? This is typically what I do with JogAmp.
>
> > Message du 15/10/14 16:42
> > De : "Rick Curtis"
> > A : "users" , gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > >Getting rid of this property doesn't solve my problem.
> > Sorry about muddying the waters. As I stated, that suggestion isn't
> related
> > to the current problem... it is a best practice. That property is busted
> > and you can fairly easily get into deadlocks.
> >
> > I am still confused The reason @PostLoad isn't called is because your
> > snippets look good. Can I have you put together some sort of a
> recreatable
> > test? That will help speed up diagnosis.
> >
> > Thanks,
> > Rick
> >
> > On Wed, Oct 15, 2014 at 4:35 AM,  wrote:
> >
> > > Getting rid of this property doesn't solve my problem.
> > >
> > > My listener:
> > >
> > > @Singleton
> > > public class MultiLangStringEntityListener {
> > >
> > > @PostLoad
> > > @SuppressWarnings("UseSpecificCatch")
> > > public void postLoad(Object entity) {
> > >
> > >
> > > An entity:
> > > @Entity
> > > @EntityListeners({MultiLangStringEntityListener.class})
> > > @Table(name = "THEME")
> > > @XmlRootElement(name = "Theme")
> > > @NamedQueries({
> > > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM DmTheme
> d")})
> > > public class Theme implements Serializable {
> > > private static final long serialVersionUID = 1L;
> > > // @Max(value=?) @Min(value=?)//if you know range of your decimal
> fields
> > > consider using these annotations to enforce field validation
> > > @Id
> > > @Basic(optional = false)
> > > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > > "SEQ_THEME")
> > > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > > allocationSize = 1)
> > > @Column(name = "ID")
> > > private BigInteger id;
> > > @Embedded
> > > @AttributeOverrides({
> > > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > > nullable=false)),
> > > @AttributeOverride(name = "lang", column = @Column(insertable = false,
> > > updatable = false, name = "DESCR")),
> > > @AttributeOverride(name = "text", column = @Column(insertable = false,
> > > updatable = false, name = "DESCR"))
> > > })
> > > private MultiLangString descr;
> > >
> > >
> > > The embeddable class:
> > >
> > > @Embeddable
> > > public class MultiLangString implements Serializable {
> > >
> > > private static final long serialVersionUID = 1L;
> > > private String id;
> > > private String lang;
> > > private String text;
> > >
> > > public MultiLangString() {
> > > }
> > >
> > >
> > > Some of my entity classes use both @Embedded and @EmbeddedId but not on
> > > the same field. I don't know what is wrong as it still works with
> Hibernate
> > > whereas I try to stay far from its specific features as you can see in
> this
> > > bug report:
> > > https://hibernate.atlassian.net/browse/HHH-9437
> > >
> > >
> > > > Message du 14/10/14 17:45
> > > > De : "Rick Curtis"
> > > > A : "users" , gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > One thing that jumps out of your p.xml is the openjpa.Multithreaded
> > > > property. I suggest you get rid of that property and ensure that you
> > > aren't
> > > > sharing EntityManager's across threads... but I don't think that is
> > > related
> > > > to the problem you are currently having.
> > > >
> > > > Can you post relevant snippets of your Entity?
> > > >
> > > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > > >
> > > > > Sorry for the confusion. No I'm not using those callbacks on an
> > > Embeddable
> > > > > but when I switched to OpenJPA, I remember that I had to add the
> > > classes
> > > > > with @Embeddable into persistence.xml whereas it wasn't necessary
> with
> > > > > Hibernate.
> > > > >
> > > > > The class that uses those callbacks uses the annotation @Singleton,
> > > > > removing it doesn't solve my problem.
> > > > >
> > > > > Please find enclosed the file.
> > > > >
> > > > >
> > > > > > Message du 14/10/14 17:31
> > > > > > De : "Rick Curtis"
> > > > > > A : "users" , gouessej@orange.fr
> > > > > > Copie à :
> > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > >
> > > > > >
> > > > > 2.4.x is the latest.
> > > > >
> > > > > >
> > > > > If I understand your previous posts, are you using
> callbacks(@Preload,
> > > > > @Postload, etc, etc) on an Embeddable? If that is the case, I'm not
> > > sure if
> > > > > it is suppose to work? Can I have you post some Entity/embeddable
> > > snippets
> > > > > so we can better understand what you want to do?
> > > > >
> > > > > >
> > > > > Thanks,
> > > > > Rick
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > >
> > > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > > >
> > > > > I use OpenJPA 2.4.0. I'm going to try with a more recent version if
> > > any.
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > Message du 14/10/14 00:14
> > > > > > > De : "Kevin Sutter"
> > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > Copie à :
> > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > >
> > > > > > > Hi,
> > > > > > > The complete trace can be turned on via this property in your
> > > p.xml:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Good luck,
> > > > > > > Kevin
> > > > > >
> > > > >
> > > > > >
> > > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > > >
> > > > > > > > Hi
> > > > > > > >
> > > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I
> have
> > > > > looked at
> > > > > > > > the logs and I have already done my best to force the
> > > persistence of
> > > > > all
> > > > > > > > entity classes including those Hibernate was able to discover
> > > alone,
> > > > > for
> > > > > > > > example the class using @Embeddable. As I'm currently not at
> > > work, I
> > > > > can't
> > > > > > > > post the persistence.xml but I'll do it tomorrow. What
> should I
> > > turn
> > > > > on to
> > > > > > > > get some more trace? Thank you for your help.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > > Message du 13/10/14 19:07
> > > > > > > > > De : "Kevin Sutter"
> > > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > > Copie à :
> > > > > > > > > Objet : Re: javax.persistence.EntityListeners is never
> called
> > > > > > > > >
> > > > > > > > > Hi,
> > > > > > > > > EntityListeners should work just fine with OpenJPA. What
> > > version of
> > > > > > > > > OpenJPA are you using? The basic support is documented
> here:
> > > > > > > > >
> > > > > > > >
> > > > >
> > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > > >
> > > > > > > > > Are there any other messages in the logs that indicate an
> > > issue?
> > > > > Have you
> > > > > > > > > tried turning on Trace to ensure that normal persistence
> > > > > processing is
> > > > > > > > > happening? Can you post your p.xml? Like I mentioned, this
> > > should
> > > > > all
> > > > > > > > > just work. We'll need a bit more context to help figure
> out the
> > > > > problem.
> > > > > > > > >
> > > > > > > > > Kevin
> > > > > > > > >
> > > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > > >
> > > > > > > > > > Hello
> > > > > > > > > >
> > > > > > > > > > I use javax.persistence.EntityListeners. The persistent
> > > classes
> > > > > of the
> > > > > > > > > > entities are correctly added into persistence.xml. My
> test
> > > case
> > > > > works
> > > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > > annotated
> > > > > methods
> > > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and
> @PostRemove) are
> > > > > never
> > > > > > > > called
> > > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I
> missing
> > > > > anything
> > > > > > > > > > obvious? Best regards.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > > --
> > > > > > Rick Curtis
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Rick Curtis*
> > > >
> > >
> >
> >
> >
> > --
> > *Rick Curtis*
> >
>



-- 
*Rick Curtis*

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
Are there any unit tests that I can run and modify to reproduce my problem? This is typically what I do with JogAmp.

> Message du 15/10/14 16:42
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> >Getting rid of this property doesn't solve my problem.
> Sorry about muddying the waters. As I stated, that suggestion isn't related
> to the current problem... it is a best practice. That property is busted
> and you can fairly easily get into deadlocks.
> 
> I am still confused The reason @PostLoad isn't called is because your
> snippets look good. Can I have you put together some sort of a recreatable
> test? That will help speed up diagnosis.
> 
> Thanks,
> Rick
> 
> On Wed, Oct 15, 2014 at 4:35 AM,  wrote:
> 
> > Getting rid of this property doesn't solve my problem.
> >
> > My listener:
> >
> > @Singleton
> > public class MultiLangStringEntityListener {
> >
> > @PostLoad
> > @SuppressWarnings("UseSpecificCatch")
> > public void postLoad(Object entity) {
> >
> >
> > An entity:
> > @Entity
> > @EntityListeners({MultiLangStringEntityListener.class})
> > @Table(name = "THEME")
> > @XmlRootElement(name = "Theme")
> > @NamedQueries({
> > @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM DmTheme d")})
> > public class Theme implements Serializable {
> > private static final long serialVersionUID = 1L;
> > // @Max(value=?) @Min(value=?)//if you know range of your decimal fields
> > consider using these annotations to enforce field validation
> > @Id
> > @Basic(optional = false)
> > @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> > "SEQ_THEME")
> > @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> > allocationSize = 1)
> > @Column(name = "ID")
> > private BigInteger id;
> > @Embedded
> > @AttributeOverrides({
> > @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> > nullable=false)),
> > @AttributeOverride(name = "lang", column = @Column(insertable = false,
> > updatable = false, name = "DESCR")),
> > @AttributeOverride(name = "text", column = @Column(insertable = false,
> > updatable = false, name = "DESCR"))
> > })
> > private MultiLangString descr;
> >
> >
> > The embeddable class:
> >
> > @Embeddable
> > public class MultiLangString implements Serializable {
> >
> > private static final long serialVersionUID = 1L;
> > private String id;
> > private String lang;
> > private String text;
> >
> > public MultiLangString() {
> > }
> >
> >
> > Some of my entity classes use both @Embedded and @EmbeddedId but not on
> > the same field. I don't know what is wrong as it still works with Hibernate
> > whereas I try to stay far from its specific features as you can see in this
> > bug report:
> > https://hibernate.atlassian.net/browse/HHH-9437
> >
> >
> > > Message du 14/10/14 17:45
> > > De : "Rick Curtis"
> > > A : "users" , gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > One thing that jumps out of your p.xml is the openjpa.Multithreaded
> > > property. I suggest you get rid of that property and ensure that you
> > aren't
> > > sharing EntityManager's across threads... but I don't think that is
> > related
> > > to the problem you are currently having.
> > >
> > > Can you post relevant snippets of your Entity?
> > >
> > > On Tue, Oct 14, 2014 at 10:39 AM, wrote:
> > >
> > > > Sorry for the confusion. No I'm not using those callbacks on an
> > Embeddable
> > > > but when I switched to OpenJPA, I remember that I had to add the
> > classes
> > > > with @Embeddable into persistence.xml whereas it wasn't necessary with
> > > > Hibernate.
> > > >
> > > > The class that uses those callbacks uses the annotation @Singleton,
> > > > removing it doesn't solve my problem.
> > > >
> > > > Please find enclosed the file.
> > > >
> > > >
> > > > > Message du 14/10/14 17:31
> > > > > De : "Rick Curtis"
> > > > > A : "users" , gouessej@orange.fr
> > > > > Copie à :
> > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > >
> > > > >
> > > > 2.4.x is the latest.
> > > >
> > > > >
> > > > If I understand your previous posts, are you using callbacks(@Preload,
> > > > @Postload, etc, etc) on an Embeddable? If that is the case, I'm not
> > sure if
> > > > it is suppose to work? Can I have you post some Entity/embeddable
> > snippets
> > > > so we can better understand what you want to do?
> > > >
> > > > >
> > > > Thanks,
> > > > Rick
> > > > >
> > > >
> > > > >
> > > >
> > > > >
> > > >
> > > >
> > > >
> > > > >
> > > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > > >
> > > > I use OpenJPA 2.4.0. I'm going to try with a more recent version if
> > any.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > Message du 14/10/14 00:14
> > > > > > De : "Kevin Sutter"
> > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > Copie à :
> > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > >
> > > > > > Hi,
> > > > > > The complete trace can be turned on via this property in your
> > p.xml:
> > > > > >
> > > > > >
> > > > > >
> > > > > > Good luck,
> > > > > > Kevin
> > > > >
> > > >
> > > > >
> > > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > > >
> > > > > > > Hi
> > > > > > >
> > > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have
> > > > looked at
> > > > > > > the logs and I have already done my best to force the
> > persistence of
> > > > all
> > > > > > > entity classes including those Hibernate was able to discover
> > alone,
> > > > for
> > > > > > > example the class using @Embeddable. As I'm currently not at
> > work, I
> > > > can't
> > > > > > > post the persistence.xml but I'll do it tomorrow. What should I
> > turn
> > > > on to
> > > > > > > get some more trace? Thank you for your help.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > Message du 13/10/14 19:07
> > > > > > > > De : "Kevin Sutter"
> > > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > > Copie à :
> > > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > > EntityListeners should work just fine with OpenJPA. What
> > version of
> > > > > > > > OpenJPA are you using? The basic support is documented here:
> > > > > > > >
> > > > > > >
> > > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > > >
> > > > > > > > Are there any other messages in the logs that indicate an
> > issue?
> > > > Have you
> > > > > > > > tried turning on Trace to ensure that normal persistence
> > > > processing is
> > > > > > > > happening? Can you post your p.xml? Like I mentioned, this
> > should
> > > > all
> > > > > > > > just work. We'll need a bit more context to help figure out the
> > > > problem.
> > > > > > > >
> > > > > > > > Kevin
> > > > > > > >
> > > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > > >
> > > > > > > > > Hello
> > > > > > > > >
> > > > > > > > > I use javax.persistence.EntityListeners. The persistent
> > classes
> > > > of the
> > > > > > > > > entities are correctly added into persistence.xml. My test
> > case
> > > > works
> > > > > > > > > correctly with Hibernate and OpenJPA except that the
> > annotated
> > > > methods
> > > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are
> > > > never
> > > > > > > called
> > > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I missing
> > > > anything
> > > > > > > > > obvious? Best regards.
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > > >
> > > >
> > > > >
> > > > --
> > > > > Rick Curtis
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Rick Curtis*
> > >
> >
> 
> 
> 
> -- 
> *Rick Curtis*
>

Re: javax.persistence.EntityListeners is never called

Posted by Rick Curtis <cu...@gmail.com>.
>Getting rid of this property doesn't solve my problem.
Sorry about muddying the waters. As I stated, that suggestion isn't related
to the current problem... it is a best practice. That property is busted
and you can fairly easily get into deadlocks.

I am still confused The reason @PostLoad isn't called is because your
snippets look good. Can I have you put together some sort of a recreatable
test? That will help speed up diagnosis.

Thanks,
Rick

On Wed, Oct 15, 2014 at 4:35 AM, <go...@orange.fr> wrote:

> Getting rid of this property doesn't solve my problem.
>
> My listener:
>
> @Singleton
> public class MultiLangStringEntityListener {
>
> @PostLoad
> @SuppressWarnings("UseSpecificCatch")
> public void postLoad(Object entity) {
>
>
> An entity:
> @Entity
> @EntityListeners({MultiLangStringEntityListener.class})
> @Table(name = "THEME")
> @XmlRootElement(name = "Theme")
> @NamedQueries({
> @NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM DmTheme d")})
> public class Theme implements Serializable {
> private static final long serialVersionUID = 1L;
> // @Max(value=?) @Min(value=?)//if you know range of your decimal fields
> consider using these annotations to enforce field validation
> @Id
> @Basic(optional = false)
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> "SEQ_THEME")
> @SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME",
> allocationSize = 1)
> @Column(name = "ID")
> private BigInteger id;
> @Embedded
> @AttributeOverrides({
> @AttributeOverride(name = "id", column = @Column(name = "DESCR",
> nullable=false)),
> @AttributeOverride(name = "lang", column = @Column(insertable = false,
> updatable = false, name = "DESCR")),
> @AttributeOverride(name = "text", column = @Column(insertable = false,
> updatable = false, name = "DESCR"))
> })
> private MultiLangString descr;
>
>
> The embeddable class:
>
> @Embeddable
> public class MultiLangString implements Serializable {
>
> private static final long serialVersionUID = 1L;
> private String id;
> private String lang;
> private String text;
>
> public MultiLangString() {
> }
>
>
> Some of my entity classes use both @Embedded and @EmbeddedId but not on
> the same field. I don't know what is wrong as it still works with Hibernate
> whereas I try to stay far from its specific features as you can see in this
> bug report:
> https://hibernate.atlassian.net/browse/HHH-9437
>
>
> > Message du 14/10/14 17:45
> > De : "Rick Curtis"
> > A : "users" , gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > One thing that jumps out of your p.xml is the openjpa.Multithreaded
> > property. I suggest you get rid of that property and ensure that you
> aren't
> > sharing EntityManager's across threads... but I don't think that is
> related
> > to the problem you are currently having.
> >
> > Can you post relevant snippets of your Entity?
> >
> > On Tue, Oct 14, 2014 at 10:39 AM,  wrote:
> >
> > > Sorry for the confusion. No I'm not using those callbacks on an
> Embeddable
> > > but when I switched to OpenJPA, I remember that I had to add the
> classes
> > > with @Embeddable into persistence.xml whereas it wasn't necessary with
> > > Hibernate.
> > >
> > > The class that uses those callbacks uses the annotation @Singleton,
> > > removing it doesn't solve my problem.
> > >
> > > Please find enclosed the file.
> > >
> > >
> > > > Message du 14/10/14 17:31
> > > > De : "Rick Curtis"
> > > > A : "users" , gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > >
> > > 2.4.x is the latest.
> > >
> > > >
> > > If I understand your previous posts, are you using callbacks(@Preload,
> > > @Postload, etc, etc) on an Embeddable? If that is the case, I'm not
> sure if
> > > it is suppose to work? Can I have you post some Entity/embeddable
> snippets
> > > so we can better understand what you want to do?
> > >
> > > >
> > > Thanks,
> > > Rick
> > > >
> > >
> > > >
> > >
> > > >
> > >
> > >
> > >
> > > >
> > > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > > >
> > > I use OpenJPA 2.4.0. I'm going to try with a more recent version if
> any.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > > Message du 14/10/14 00:14
> > > > > De : "Kevin Sutter"
> > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > Copie à :
> > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > >
> > > > > Hi,
> > > > > The complete trace can be turned on via this property in your
> p.xml:
> > > > >
> > > > >
> > > > >
> > > > > Good luck,
> > > > > Kevin
> > > >
> > >
> > > >
> > > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > > >
> > > > > > Hi
> > > > > >
> > > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have
> > > looked at
> > > > > > the logs and I have already done my best to force the
> persistence of
> > > all
> > > > > > entity classes including those Hibernate was able to discover
> alone,
> > > for
> > > > > > example the class using @Embeddable. As I'm currently not at
> work, I
> > > can't
> > > > > > post the persistence.xml but I'll do it tomorrow. What should I
> turn
> > > on to
> > > > > > get some more trace? Thank you for your help.
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > Message du 13/10/14 19:07
> > > > > > > De : "Kevin Sutter"
> > > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > > Copie à :
> > > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > > >
> > > > > > > Hi,
> > > > > > > EntityListeners should work just fine with OpenJPA. What
> version of
> > > > > > > OpenJPA are you using? The basic support is documented here:
> > > > > > >
> > > > > >
> > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > > >
> > > > > > > Are there any other messages in the logs that indicate an
> issue?
> > > Have you
> > > > > > > tried turning on Trace to ensure that normal persistence
> > > processing is
> > > > > > > happening? Can you post your p.xml? Like I mentioned, this
> should
> > > all
> > > > > > > just work. We'll need a bit more context to help figure out the
> > > problem.
> > > > > > >
> > > > > > > Kevin
> > > > > > >
> > > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > > >
> > > > > > > > Hello
> > > > > > > >
> > > > > > > > I use javax.persistence.EntityListeners. The persistent
> classes
> > > of the
> > > > > > > > entities are correctly added into persistence.xml. My test
> case
> > > works
> > > > > > > > correctly with Hibernate and OpenJPA except that the
> annotated
> > > methods
> > > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are
> > > never
> > > > > > called
> > > > > > > > by OpenJPA whereas they are called by Hibernate. Am I missing
> > > anything
> > > > > > > > obvious? Best regards.
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > >
> > > >
> > >
> > > >
> > > --
> > > > Rick Curtis
> > > >
> > >
> >
> >
> >
> > --
> > *Rick Curtis*
> >
>



-- 
*Rick Curtis*

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
Getting rid of this property doesn't solve my problem.

My listener:

@Singleton
public class MultiLangStringEntityListener {

@PostLoad
@SuppressWarnings("UseSpecificCatch")
public void postLoad(Object entity) {


An entity:
@Entity
@EntityListeners({MultiLangStringEntityListener.class})
@Table(name = "THEME")
@XmlRootElement(name = "Theme")
@NamedQueries({
@NamedQuery(name = "DmTheme.findAll", query = "SELECT d FROM DmTheme d")})
public class Theme implements Serializable {
private static final long serialVersionUID = 1L;
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_THEME")
@SequenceGenerator(name = "SEQ_THEME", sequenceName = "SEQ_THEME", allocationSize = 1)
@Column(name = "ID")
private BigInteger id;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "DESCR", nullable=false)),
@AttributeOverride(name = "lang", column = @Column(insertable = false, updatable = false, name = "DESCR")),
@AttributeOverride(name = "text", column = @Column(insertable = false, updatable = false, name = "DESCR"))
})
private MultiLangString descr;


The embeddable class:

@Embeddable
public class MultiLangString implements Serializable {

private static final long serialVersionUID = 1L;
private String id;
private String lang;
private String text;

public MultiLangString() {
}


Some of my entity classes use both @Embedded and @EmbeddedId but not on the same field. I don't know what is wrong as it still works with Hibernate whereas I try to stay far from its specific features as you can see in this bug report:
https://hibernate.atlassian.net/browse/HHH-9437


> Message du 14/10/14 17:45
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> One thing that jumps out of your p.xml is the openjpa.Multithreaded
> property. I suggest you get rid of that property and ensure that you aren't
> sharing EntityManager's across threads... but I don't think that is related
> to the problem you are currently having.
> 
> Can you post relevant snippets of your Entity?
> 
> On Tue, Oct 14, 2014 at 10:39 AM,  wrote:
> 
> > Sorry for the confusion. No I'm not using those callbacks on an Embeddable
> > but when I switched to OpenJPA, I remember that I had to add the classes
> > with @Embeddable into persistence.xml whereas it wasn't necessary with
> > Hibernate.
> >
> > The class that uses those callbacks uses the annotation @Singleton,
> > removing it doesn't solve my problem.
> >
> > Please find enclosed the file.
> >
> >
> > > Message du 14/10/14 17:31
> > > De : "Rick Curtis"
> > > A : "users" , gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > >
> > 2.4.x is the latest.
> >
> > >
> > If I understand your previous posts, are you using callbacks(@Preload,
> > @Postload, etc, etc) on an Embeddable? If that is the case, I'm not sure if
> > it is suppose to work? Can I have you post some Entity/embeddable snippets
> > so we can better understand what you want to do?
> >
> > >
> > Thanks,
> > Rick
> > >
> >
> > >
> >
> > >
> >
> >
> >
> > >
> > On Tue, Oct 14, 2014 at 8:20 AM, wrote:
> > >
> > I use OpenJPA 2.4.0. I'm going to try with a more recent version if any.
> > >
> > >
> > >
> > >
> > >
> > >
> > > > Message du 14/10/14 00:14
> > > > De : "Kevin Sutter"
> > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > Hi,
> > > > The complete trace can be turned on via this property in your p.xml:
> > > >
> > > >
> > > >
> > > > Good luck,
> > > > Kevin
> > >
> >
> > >
> > > > On Mon, Oct 13, 2014 at 1:01 PM, wrote:
> > > >
> > > > > Hi
> > > > >
> > > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have
> > looked at
> > > > > the logs and I have already done my best to force the persistence of
> > all
> > > > > entity classes including those Hibernate was able to discover alone,
> > for
> > > > > example the class using @Embeddable. As I'm currently not at work, I
> > can't
> > > > > post the persistence.xml but I'll do it tomorrow. What should I turn
> > on to
> > > > > get some more trace? Thank you for your help.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > Message du 13/10/14 19:07
> > > > > > De : "Kevin Sutter"
> > > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > > Copie à :
> > > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > > >
> > > > > > Hi,
> > > > > > EntityListeners should work just fine with OpenJPA. What version of
> > > > > > OpenJPA are you using? The basic support is documented here:
> > > > > >
> > > > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > > >
> > > > > > Are there any other messages in the logs that indicate an issue?
> > Have you
> > > > > > tried turning on Trace to ensure that normal persistence
> > processing is
> > > > > > happening? Can you post your p.xml? Like I mentioned, this should
> > all
> > > > > > just work. We'll need a bit more context to help figure out the
> > problem.
> > > > > >
> > > > > > Kevin
> > > > > >
> > > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > > >
> > > > > > > Hello
> > > > > > >
> > > > > > > I use javax.persistence.EntityListeners. The persistent classes
> > of the
> > > > > > > entities are correctly added into persistence.xml. My test case
> > works
> > > > > > > correctly with Hibernate and OpenJPA except that the annotated
> > methods
> > > > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are
> > never
> > > > > called
> > > > > > > by OpenJPA whereas they are called by Hibernate. Am I missing
> > anything
> > > > > > > obvious? Best regards.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> >
> >
> >
> > >
> >
> > >
> > --
> > > Rick Curtis
> > >
> >
> 
> 
> 
> -- 
> *Rick Curtis*
>

Re: javax.persistence.EntityListeners is never called

Posted by Rick Curtis <cu...@gmail.com>.
One thing that jumps out of your p.xml is the openjpa.Multithreaded
property. I suggest you get rid of that property and ensure that you aren't
sharing EntityManager's across threads... but I don't think that is related
to the problem you are currently having.

Can you post relevant snippets of your Entity?

On Tue, Oct 14, 2014 at 10:39 AM, <go...@orange.fr> wrote:

> Sorry for the confusion. No I'm not using those callbacks on an Embeddable
> but when I switched to OpenJPA, I remember that I had to add the classes
> with @Embeddable into persistence.xml whereas it wasn't necessary with
> Hibernate.
>
> The class that uses those callbacks uses the annotation @Singleton,
> removing it doesn't solve my problem.
>
> Please find enclosed the file.
>
>
> > Message du 14/10/14 17:31
> > De : "Rick Curtis"
> > A : "users" , gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> >
> 2.4.x is the latest.
>
> >
> If I understand your previous posts, are you using callbacks(@Preload,
> @Postload, etc, etc) on an Embeddable? If that is the case, I'm not sure if
> it is suppose to work? Can I have you post some Entity/embeddable snippets
> so we can better understand what you want to do?
>
> >
> Thanks,
> Rick
> >
>
> >
>
> >
>
>
>
> >
> On Tue, Oct 14, 2014 at 8:20 AM,  wrote:
> >
> I use OpenJPA 2.4.0. I'm going to try with a more recent version if any.
> >
> >
> >
> >
> >
> >
> > > Message du 14/10/14 00:14
> > > De : "Kevin Sutter"
> > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > Hi,
> > > The complete trace can be turned on via this property in your p.xml:
> > >
> > >
> > >
> > > Good luck,
> > > Kevin
> >
>
> >
> > > On Mon, Oct 13, 2014 at 1:01 PM,  wrote:
> > >
> > > > Hi
> > > >
> > > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have
> looked at
> > > > the logs and I have already done my best to force the persistence of
> all
> > > > entity classes including those Hibernate was able to discover alone,
> for
> > > > example the class using @Embeddable. As I'm currently not at work, I
> can't
> > > > post the persistence.xml but I'll do it tomorrow. What should I turn
> on to
> > > > get some more trace? Thank you for your help.
> > > >
> > > >
> > > >
> > > >
> > > > > Message du 13/10/14 19:07
> > > > > De : "Kevin Sutter"
> > > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > > Copie à :
> > > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > > >
> > > > > Hi,
> > > > > EntityListeners should work just fine with OpenJPA. What version of
> > > > > OpenJPA are you using? The basic support is documented here:
> > > > >
> > > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > > >
> > > > > Are there any other messages in the logs that indicate an issue?
> Have you
> > > > > tried turning on Trace to ensure that normal persistence
> processing is
> > > > > happening? Can you post your p.xml? Like I mentioned, this should
> all
> > > > > just work. We'll need a bit more context to help figure out the
> problem.
> > > > >
> > > > > Kevin
> > > > >
> > > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > > >
> > > > > > Hello
> > > > > >
> > > > > > I use javax.persistence.EntityListeners. The persistent classes
> of the
> > > > > > entities are correctly added into persistence.xml. My test case
> works
> > > > > > correctly with Hibernate and OpenJPA except that the annotated
> methods
> > > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are
> never
> > > > called
> > > > > > by OpenJPA whereas they are called by Hibernate. Am I missing
> anything
> > > > > > obvious? Best regards.
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
>
>
> >
>
> >
> --
> > Rick Curtis
> >
>



-- 
*Rick Curtis*

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
Sorry for the confusion. No I'm not using those callbacks on an Embeddable but when I switched to OpenJPA, I remember that I had to add the classes with @Embeddable into persistence.xml whereas it wasn't necessary with Hibernate.

The class that uses those callbacks uses the annotation @Singleton, removing it doesn't solve my problem.

Please find enclosed the file.


> Message du 14/10/14 17:31
> De : "Rick Curtis" 
> A : "users" , gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
>
2.4.x is the latest.

>
If I understand your previous posts, are you using callbacks(@Preload, @Postload, etc, etc) on an Embeddable? If that is the case, I'm not sure if it is suppose to work? Can I have you post some Entity/embeddable snippets so we can better understand what you want to do?

>
Thanks,
Rick
>

>

>



>
On Tue, Oct 14, 2014 at 8:20 AM,  wrote:
>
I use OpenJPA 2.4.0. I'm going to try with a more recent version if any.
> 
> 
> 
> 
> 
> 
> > Message du 14/10/14 00:14
> > De : "Kevin Sutter"
> > A : users@openjpa.apache.org, gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > Hi,
> > The complete trace can be turned on via this property in your p.xml:
> >
> >
> >
> > Good luck,
> > Kevin
>

>
> > On Mon, Oct 13, 2014 at 1:01 PM,  wrote:
> >
> > > Hi
> > >
> > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have looked at
> > > the logs and I have already done my best to force the persistence of all
> > > entity classes including those Hibernate was able to discover alone, for
> > > example the class using @Embeddable. As I'm currently not at work, I can't
> > > post the persistence.xml but I'll do it tomorrow. What should I turn on to
> > > get some more trace? Thank you for your help.
> > >
> > >
> > >
> > >
> > > > Message du 13/10/14 19:07
> > > > De : "Kevin Sutter"
> > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > Hi,
> > > > EntityListeners should work just fine with OpenJPA. What version of
> > > > OpenJPA are you using? The basic support is documented here:
> > > >
> > > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > >
> > > > Are there any other messages in the logs that indicate an issue? Have you
> > > > tried turning on Trace to ensure that normal persistence processing is
> > > > happening? Can you post your p.xml? Like I mentioned, this should all
> > > > just work. We'll need a bit more context to help figure out the problem.
> > > >
> > > > Kevin
> > > >
> > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > >
> > > > > Hello
> > > > >
> > > > > I use javax.persistence.EntityListeners. The persistent classes of the
> > > > > entities are correctly added into persistence.xml. My test case works
> > > > > correctly with Hibernate and OpenJPA except that the annotated methods
> > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never
> > > called
> > > > > by OpenJPA whereas they are called by Hibernate. Am I missing anything
> > > > > obvious? Best regards.
> > > > >
> > > >
> > >
> >
>




> 

>
-- 
> Rick Curtis
>

Re: javax.persistence.EntityListeners is never called

Posted by Rick Curtis <cu...@gmail.com>.
2.4.x is the latest.

If I understand your previous posts, are you using callbacks(@Preload,
@Postload, etc, etc) on an Embeddable? If that is the case, I'm not sure if
it is suppose to work? Can I have you post some Entity/embeddable snippets
so we can better understand what you want to do?

Thanks,
Rick



On Tue, Oct 14, 2014 at 8:20 AM, <go...@orange.fr> wrote:

> I use OpenJPA 2.4.0. I'm going to try with a more recent version if any.
>
>
>
>
>
>
> > Message du 14/10/14 00:14
> > De : "Kevin Sutter"
> > A : users@openjpa.apache.org, gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > Hi,
> > The complete trace can be turned on via this property in your p.xml:
> >
> >
> >
> > Good luck,
> > Kevin
> >
> > On Mon, Oct 13, 2014 at 1:01 PM,  wrote:
> >
> > > Hi
> > >
> > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have
> looked at
> > > the logs and I have already done my best to force the persistence of
> all
> > > entity classes including those Hibernate was able to discover alone,
> for
> > > example the class using @Embeddable. As I'm currently not at work, I
> can't
> > > post the persistence.xml but I'll do it tomorrow. What should I turn
> on to
> > > get some more trace? Thank you for your help.
> > >
> > >
> > >
> > >
> > > > Message du 13/10/14 19:07
> > > > De : "Kevin Sutter"
> > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > Hi,
> > > > EntityListeners should work just fine with OpenJPA. What version of
> > > > OpenJPA are you using? The basic support is documented here:
> > > >
> > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > >
> > > > Are there any other messages in the logs that indicate an issue?
> Have you
> > > > tried turning on Trace to ensure that normal persistence processing
> is
> > > > happening? Can you post your p.xml? Like I mentioned, this should all
> > > > just work. We'll need a bit more context to help figure out the
> problem.
> > > >
> > > > Kevin
> > > >
> > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > >
> > > > > Hello
> > > > >
> > > > > I use javax.persistence.EntityListeners. The persistent classes of
> the
> > > > > entities are correctly added into persistence.xml. My test case
> works
> > > > > correctly with Hibernate and OpenJPA except that the annotated
> methods
> > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never
> > > called
> > > > > by OpenJPA whereas they are called by Hibernate. Am I missing
> anything
> > > > > obvious? Best regards.
> > > > >
> > > >
> > >
> >
>



-- 
*Rick Curtis*

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
I use OpenJPA 2.4.0. I'm going to try with a more recent version if any.






> Message du 14/10/14 00:14
> De : "Kevin Sutter" 
> A : users@openjpa.apache.org, gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> Hi,
> The complete trace can be turned on via this property in your p.xml:
> 
> 
> 
> Good luck,
> Kevin
> 
> On Mon, Oct 13, 2014 at 1:01 PM,  wrote:
> 
> > Hi
> >
> > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have looked at
> > the logs and I have already done my best to force the persistence of all
> > entity classes including those Hibernate was able to discover alone, for
> > example the class using @Embeddable. As I'm currently not at work, I can't
> > post the persistence.xml but I'll do it tomorrow. What should I turn on to
> > get some more trace? Thank you for your help.
> >
> >
> >
> >
> > > Message du 13/10/14 19:07
> > > De : "Kevin Sutter"
> > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > Hi,
> > > EntityListeners should work just fine with OpenJPA. What version of
> > > OpenJPA are you using? The basic support is documented here:
> > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > >
> > > Are there any other messages in the logs that indicate an issue? Have you
> > > tried turning on Trace to ensure that normal persistence processing is
> > > happening? Can you post your p.xml? Like I mentioned, this should all
> > > just work. We'll need a bit more context to help figure out the problem.
> > >
> > > Kevin
> > >
> > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > >
> > > > Hello
> > > >
> > > > I use javax.persistence.EntityListeners. The persistent classes of the
> > > > entities are correctly added into persistence.xml. My test case works
> > > > correctly with Hibernate and OpenJPA except that the annotated methods
> > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never
> > called
> > > > by OpenJPA whereas they are called by Hibernate. Am I missing anything
> > > > obvious? Best regards.
> > > >
> > >
> >
>

Re: javax.persistence.EntityListeners is never called

Posted by Kevin Sutter <kw...@gmail.com>.
Hi,
Your p.xml didn't post correctly... I'm curious what the NONE setting is
for...

At this point, nothing else is jumping out at me...

Kevin

On Tue, Oct 14, 2014 at 4:30 AM, <go...@orange.fr> wrote:

> Hi
>
> One of the classes seems to be parsed twice according to the trace:
> 718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Loading metadata
> for "class com.******.*****.ejbs.utils.MultiLangString" under mode
> "[META][QUERY]".
> 718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Parsing class
> "com.******.*****.ejbs.utils.MultiLangString".
> 718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Parsing package
> "com.******.*****.ejbs.utils.MultiLangString".
> 718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Generating default
> metadata for type "com.******.*****.ejbs.utils.MultiLangString".
> 718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Using reflection
> for metadata generation.
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Set
> persistence-capable superclass of
> "com.******.*****.ejbs.utils.MultiLangString" to "null".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving embedded
> metadata for "com.******.*****.ejbs.utils.MultiLangString@2102741454".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Set
> persistence-capable superclass of
> "com.******.*****.ejbs.utils.MultiLangString" to "null".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving metadata
> for "com.******.*****.ejbs.utils.MultiLangString@1784722346".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field
> "com.******.*****.ejbs.utils.MultiLangString@1784722346.id".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field
> "com.******.*****.ejbs.utils.MultiLangString@1784722346.lang".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field
> "com.******.*****.ejbs.utils.MultiLangString@1784722346.text".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field
> "com.******.*****.ejbs.utils.MultiLangString@2102741454.id".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field
> "com.******.*****.ejbs.utils.MultiLangString@2102741454.lang".
> 733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field
> "com.******.*****.ejbs.utils.MultiLangString@2102741454.text".
>
> com.******.*****.ejbs.utils.MultiLangString uses the annotation
> @Embeddable.
>
> This is the only suspicious thing I've found in the trace.
>
> This is my persistence.xml file:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
>
>
>
>
> org.apache.openjpa.persistence.PersistenceProviderImpl
>
> java:/*****WebServicesDS
> com.******.*****.ejbs.utils.MultiLangString
> NONE
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> > Message du 14/10/14 00:14
> > De : "Kevin Sutter"
> > A : users@openjpa.apache.org, gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > Hi,
> > The complete trace can be turned on via this property in your p.xml:
> >
> >
> >
> > Good luck,
> > Kevin
> >
> > On Mon, Oct 13, 2014 at 1:01 PM,  wrote:
> >
> > > Hi
> > >
> > > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have
> looked at
> > > the logs and I have already done my best to force the persistence of
> all
> > > entity classes including those Hibernate was able to discover alone,
> for
> > > example the class using @Embeddable. As I'm currently not at work, I
> can't
> > > post the persistence.xml but I'll do it tomorrow. What should I turn
> on to
> > > get some more trace? Thank you for your help.
> > >
> > >
> > >
> > >
> > > > Message du 13/10/14 19:07
> > > > De : "Kevin Sutter"
> > > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > > Copie à :
> > > > Objet : Re: javax.persistence.EntityListeners is never called
> > > >
> > > > Hi,
> > > > EntityListeners should work just fine with OpenJPA. What version of
> > > > OpenJPA are you using? The basic support is documented here:
> > > >
> > >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > > >
> > > > Are there any other messages in the logs that indicate an issue?
> Have you
> > > > tried turning on Trace to ensure that normal persistence processing
> is
> > > > happening? Can you post your p.xml? Like I mentioned, this should all
> > > > just work. We'll need a bit more context to help figure out the
> problem.
> > > >
> > > > Kevin
> > > >
> > > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > > >
> > > > > Hello
> > > > >
> > > > > I use javax.persistence.EntityListeners. The persistent classes of
> the
> > > > > entities are correctly added into persistence.xml. My test case
> works
> > > > > correctly with Hibernate and OpenJPA except that the annotated
> methods
> > > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never
> > > called
> > > > > by OpenJPA whereas they are called by Hibernate. Am I missing
> anything
> > > > > obvious? Best regards.
> > > > >
> > > >
> > >
> >
>

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
Hi

One of the classes seems to be parsed twice according to the trace:
718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Loading metadata for "class com.******.*****.ejbs.utils.MultiLangString" under mode "[META][QUERY]".
718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Parsing class "com.******.*****.ejbs.utils.MultiLangString".
718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Parsing package "com.******.*****.ejbs.utils.MultiLangString".
718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Generating default metadata for type "com.******.*****.ejbs.utils.MultiLangString".
718 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Using reflection for metadata generation.
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Set persistence-capable superclass of "com.******.*****.ejbs.utils.MultiLangString" to "null".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving embedded metadata for "com.******.*****.ejbs.utils.MultiLangString@2102741454".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Set persistence-capable superclass of "com.******.*****.ejbs.utils.MultiLangString" to "null".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving metadata for "com.******.*****.ejbs.utils.MultiLangString@1784722346".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field "com.******.*****.ejbs.utils.MultiLangString@1784722346.id".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field "com.******.*****.ejbs.utils.MultiLangString@1784722346.lang".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field "com.******.*****.ejbs.utils.MultiLangString@1784722346.text".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field "com.******.*****.ejbs.utils.MultiLangString@2102741454.id".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field "com.******.*****.ejbs.utils.MultiLangString@2102741454.lang".
733 RCSDMWebServicesPU TRACE [main] openjpa.MetaData - Resolving field "com.******.*****.ejbs.utils.MultiLangString@2102741454.text".

com.******.*****.ejbs.utils.MultiLangString uses the annotation @Embeddable.

This is the only suspicious thing I've found in the trace.

This is my persistence.xml file:

<?xml version="1.0" encoding="UTF-8"?>





org.apache.openjpa.persistence.PersistenceProviderImpl

java:/*****WebServicesDS
com.******.*****.ejbs.utils.MultiLangString
NONE




























> Message du 14/10/14 00:14
> De : "Kevin Sutter" 
> A : users@openjpa.apache.org, gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> Hi,
> The complete trace can be turned on via this property in your p.xml:
> 
> 
> 
> Good luck,
> Kevin
> 
> On Mon, Oct 13, 2014 at 1:01 PM,  wrote:
> 
> > Hi
> >
> > I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have looked at
> > the logs and I have already done my best to force the persistence of all
> > entity classes including those Hibernate was able to discover alone, for
> > example the class using @Embeddable. As I'm currently not at work, I can't
> > post the persistence.xml but I'll do it tomorrow. What should I turn on to
> > get some more trace? Thank you for your help.
> >
> >
> >
> >
> > > Message du 13/10/14 19:07
> > > De : "Kevin Sutter"
> > > A : users@openjpa.apache.org, gouessej@orange.fr
> > > Copie à :
> > > Objet : Re: javax.persistence.EntityListeners is never called
> > >
> > > Hi,
> > > EntityListeners should work just fine with OpenJPA. What version of
> > > OpenJPA are you using? The basic support is documented here:
> > >
> > http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> > >
> > > Are there any other messages in the logs that indicate an issue? Have you
> > > tried turning on Trace to ensure that normal persistence processing is
> > > happening? Can you post your p.xml? Like I mentioned, this should all
> > > just work. We'll need a bit more context to help figure out the problem.
> > >
> > > Kevin
> > >
> > > On Mon, Oct 13, 2014 at 10:56 AM, wrote:
> > >
> > > > Hello
> > > >
> > > > I use javax.persistence.EntityListeners. The persistent classes of the
> > > > entities are correctly added into persistence.xml. My test case works
> > > > correctly with Hibernate and OpenJPA except that the annotated methods
> > > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never
> > called
> > > > by OpenJPA whereas they are called by Hibernate. Am I missing anything
> > > > obvious? Best regards.
> > > >
> > >
> >
>

Re: javax.persistence.EntityListeners is never called

Posted by Kevin Sutter <kw...@gmail.com>.
Hi,
The complete trace can be turned on via this property in your p.xml:

<property name="openjpa.Log" value="DefaultLevel=TRACE"/>

Good luck,
Kevin

On Mon, Oct 13, 2014 at 1:01 PM, <go...@orange.fr> wrote:

> Hi
>
> I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have looked at
> the logs and I have already done my best to force the persistence of all
> entity classes including those Hibernate was able to discover alone, for
> example the class using @Embeddable. As I'm currently not at work, I can't
> post the persistence.xml but I'll do it tomorrow. What should I turn on to
> get some more trace? Thank you for your help.
>
>
>
>
> > Message du 13/10/14 19:07
> > De : "Kevin Sutter"
> > A : users@openjpa.apache.org, gouessej@orange.fr
> > Copie à :
> > Objet : Re: javax.persistence.EntityListeners is never called
> >
> > Hi,
> > EntityListeners should work just fine with OpenJPA. What version of
> > OpenJPA are you using? The basic support is documented here:
> >
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> >
> > Are there any other messages in the logs that indicate an issue? Have you
> > tried turning on Trace to ensure that normal persistence processing is
> > happening? Can you post your p.xml? Like I mentioned, this should all
> > just work. We'll need a bit more context to help figure out the problem.
> >
> > Kevin
> >
> > On Mon, Oct 13, 2014 at 10:56 AM,  wrote:
> >
> > > Hello
> > >
> > > I use javax.persistence.EntityListeners. The persistent classes of the
> > > entities are correctly added into persistence.xml. My test case works
> > > correctly with Hibernate and OpenJPA except that the annotated methods
> > > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never
> called
> > > by OpenJPA whereas they are called by Hibernate. Am I missing anything
> > > obvious? Best regards.
> > >
> >
>

Re: javax.persistence.EntityListeners is never called

Posted by go...@orange.fr.
Hi

I use Apache OpenEJB 4.7.1 (probably OpenJPA 2.2 or 2.3). I have looked at the logs and I have already done my best to force the persistence of all entity classes including those Hibernate was able to discover alone, for example the class using @Embeddable. As I'm currently not at work, I can't post the persistence.xml but I'll do it tomorrow. What should I turn on to get some more trace? Thank you for your help.




> Message du 13/10/14 19:07
> De : "Kevin Sutter" 
> A : users@openjpa.apache.org, gouessej@orange.fr
> Copie à : 
> Objet : Re: javax.persistence.EntityListeners is never called
> 
> Hi,
> EntityListeners should work just fine with OpenJPA. What version of
> OpenJPA are you using? The basic support is documented here:
> http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks
> 
> Are there any other messages in the logs that indicate an issue? Have you
> tried turning on Trace to ensure that normal persistence processing is
> happening? Can you post your p.xml? Like I mentioned, this should all
> just work. We'll need a bit more context to help figure out the problem.
> 
> Kevin
> 
> On Mon, Oct 13, 2014 at 10:56 AM,  wrote:
> 
> > Hello
> >
> > I use javax.persistence.EntityListeners. The persistent classes of the
> > entities are correctly added into persistence.xml. My test case works
> > correctly with Hibernate and OpenJPA except that the annotated methods
> > (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never called
> > by OpenJPA whereas they are called by Hibernate. Am I missing anything
> > obvious? Best regards.
> >
>

Re: javax.persistence.EntityListeners is never called

Posted by Kevin Sutter <kw...@gmail.com>.
Hi,
EntityListeners should work just fine with OpenJPA.  What version of
OpenJPA are you using?  The basic support is documented here:
http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#jpa_overview_pc_callbacks

Are there any other messages in the logs that indicate an issue?  Have you
tried turning on Trace to ensure that normal persistence processing is
happening?  Can you post your p.xml?  Like I mentioned, this should all
just work.  We'll need a bit more context to help figure out the problem.

Kevin

On Mon, Oct 13, 2014 at 10:56 AM, <go...@orange.fr> wrote:

> Hello
>
> I use javax.persistence.EntityListeners. The persistent classes of the
> entities are correctly added into persistence.xml. My test case works
> correctly with Hibernate and OpenJPA except that the annotated methods
> (with @PostLoad, @PreUpdate, @PrePersist and @PostRemove) are never called
> by OpenJPA whereas they are called by Hibernate. Am I missing anything
> obvious? Best regards.
>