Hi Rick,
As requested, here is a test I wrote in the 'openjpa-persistence-jdbc'
project:
package org.apache.openjpa.persistence.jdbc.update;
import java.util.Date;
import javax.persistence.EntityManager;
import org.apache.openjpa.persistence.test.SingleEMFTestCase;
public class TestCascadePersist extends SingleEMFTestCase {
public void setUp() throws Exception {
super.setUp(CLEAR_TABLES, Parent.class, Child.class);
}
public void testAddChildShouldNotUpdateParent() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Parent parent = new Parent();
parent.setName("parent");
em.persist(parent);
em.getTransaction().commit();
long parentId = parent.getId();
Date expectedLastModifiedDate = parent.getLastModifiedDate();
em.getTransaction().begin();
parent = em.find(Parent.class, parentId);
parent.newChild("child");
em.getTransaction().commit();
Date actualModifiedDate = parent.getLastModifiedDate();
assertEquals("The last modified date should not change.",
expectedLastModifiedDate.getTime(),
actualModifiedDate.getTime());
}
}
In order for the test to work, the following instance variable and methods
have to be added to the
existing org.apache.openjpa.persistence.jdbc.update.Parent class:
private Date lastModifiedDate;
public Date getLastModifiedDate() {
return lastModifiedDate;
}
@PrePersist
@PreUpdate
public void onUpdate() {
this.lastModifiedDate = new Date();
}
Thanks!
Alain
--
View this message in context:
http://openjpa.208410.n2.nabble.com/Unecessary-database-update-tp7586121p7586153.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.