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

Reply via email to