I mean´t that I'm NOT 100% sure. sorry On Fri, Sep 18, 2009 at 6:00 PM, Ruben Laguna <[email protected]>wrote:
> Well, now I'm 100% sure that the entity class is enhanced, I see the > > 5968 persistencexmltest1PU INFO [main] openjpa.Enhance - Creating > subclass for "[class com.rubenlaguna.MyEntity]". This means that your > application will be less efficient and will consume more memory than it > would if you ran the OpenJPA enhancer. Additionally, lazy loading will not > be available for one-to-one and many-to-one persistent attributes in types > using field access; they will be loaded eagerly instead. > > > but I cannot understand I'm running the enhancer (via ant task) and I can > see that the md5 signature of the class file has changed > > > $ md5sum build/classes/com/rubenlaguna/MyEntity.class > af6dc953c66c328853c5a5dc6062c5d4 > *build/classes/com/rubenlaguna/MyEntity.class > > > $ md5sum build/classes/com/rubenlaguna/MyEntity.class > c47b89c1065fdaeb90cc998c12a997a8 > *build/classes/com/rubenlaguna/MyEntity.class > > It's there any way to check that the class file is actually properly > enhanced? > > Thanks in advance > > > > On Fri, Sep 18, 2009 at 5:17 PM, ecerulm <[email protected]> wrote: > >> >> Hi, >> >> I have the following snippet of code >> >> >> >> EntityManagerFactory emf = >> Persistence.createEntityManagerFactory("persistencexmltest1PU"); >> EntityManager em = emf.createEntityManager(); >> for (int i = 0; i < 10; i++) { >> em.getTransaction().begin(); >> MyEntity n =new MyEntity(); >> n.setValue(i); >> em.persist(n); >> em.getTransaction().commit(); >> //em.clear(); //This shouldn't be needed, right? >> } >> >> >> And OpenJPA 1.2.0 (with HSQLDB) is generating >> >> INSERT INTO MYTABLE (ID, VALUE, CREATED) VALUES (?, ?, ?) [params=(int) 1, >> (int) 0, (null) null] >> INSERT INTO MYTABLE (ID, VALUE, CREATED) VALUES (?, ?, ?) [params=(int) 2, >> (int) 1, (null) null] >> UPDATE MYTABLE SET CREATED = ? WHERE ID = ? [params=(null) null, (int) 1] >> INSERT INTO MYTABLE (ID, VALUE, CREATED) VALUES (?, ?, ?) [params=(int) 3, >> (int) 2, (null) null] >> UPDATE MYTABLE SET CREATED = ? WHERE ID = ? [params=(null) null, (int) 2] >> UPDATE MYTABLE SET CREATED = ? WHERE ID = ? [params=(null) null, (int) 1] >> >> >> The MyEntity entity IS enhanced so I guess that >> https://issues.apache.org/jira/browse/OPENJPA-546 doesn't apply. >> >> If I call EntityManager.clear() after the commit then the issue is fixed. >> But is this the expected behaviour? OpenJPA is generating SQL updates for >> unchanged entities within the transaction, that is not what I was >> expecting. >> >> For me, this started when I added a @Temporal(TemporalType.TIMESTAMP) >> field >> to the entity (MyEntity). With a "simpler" entity I get only INSERTs (no >> UPDATEs). >> >> >> >> >> >> http://rubenlaguna.com/wp/2009/09/18/openjpa-generated-sql-contains-extra-updates/ >> >> >> >> >> -- >> View this message in context: >> http://n2.nabble.com/OpenJPA-generates-extra-UPDATEs-tp3670456p3670456.html >> Sent from the OpenJPA Users mailing list archive at Nabble.com. >> > > > > -- > /Rubén > -- /Rubén
