[hibernate-commits] Hibernate SVN: r11262 - branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Mar 7 18:56:44 EST 2007
Author: epbernard
Date: 2007-03-07 18:56:43 -0500 (Wed, 07 Mar 2007)
New Revision: 11262
Added:
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/Music.java
Modified:
branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/RemoveTest.java
Log:
mote tests about removing an updated entity
Added: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/Music.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/Music.java (rev 0)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/Music.java 2007-03-07 23:56:43 UTC (rev 11262)
@@ -0,0 +1,43 @@
+//$Id: $
+package org.hibernate.ejb.test.emops;
+
+import javax.persistence.Version;
+import javax.persistence.Id;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class Music {
+ @Id @GeneratedValue
+ private Integer id;
+ private String name;
+ @Version
+ private Integer version;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer getVersion() {
+ return version;
+ }
+
+ public void setVersion(Integer version) {
+ this.version = version;
+ }
+}
Modified: branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/RemoveTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/RemoveTest.java 2007-03-07 23:28:34 UTC (rev 11261)
+++ branches/Branch_3_2/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/RemoveTest.java 2007-03-07 23:56:43 UTC (rev 11262)
@@ -1,7 +1,9 @@
//$Id: $
package org.hibernate.ejb.test.emops;
+import java.util.Map;
import javax.persistence.EntityManager;
+import javax.persistence.OptimisticLockException;
import org.hibernate.ejb.test.TestCase;
@@ -35,10 +37,59 @@
em.close();
}
+ public void testUpdatedAndRemove() {
+ Music music = new Music();
+ music.setName( "Classical" );
+ EntityManager em = factory.createEntityManager();
+ em.getTransaction().begin();
+ em.persist( music );
+ em.getTransaction().commit();
+
+ em.clear();
+
+ em = factory.createEntityManager();
+ em.getTransaction().begin();
+ EntityManager em2 = factory.createEntityManager();
+ em2.getTransaction().begin();
+
+ //read music from 2nd EM
+ music = em2.find( Music.class, music.getId() );
+
+ //change music
+ em.find( Music.class, music.getId() ).setName( "Rap" );
+ em.getTransaction().commit();
+
+ try {
+ em2.remove( music ); //remove changed music
+ em2.flush();
+ fail("should have an optimistic lock exception");
+ }
+ catch( OptimisticLockException e ) {
+ //success
+ }
+ finally {
+ em2.getTransaction().rollback();
+ }
+
+ //clean
+ em.remove( em.find( Music.class, music.getId() ) );
+
+ em.close();
+ em2.close();
+ }
+
public Class[] getAnnotatedClasses() {
return new Class[] {
Race.class,
- Competitor.class
+ Competitor.class,
+ Music.class
};
}
+
+
+ public Map getConfig() {
+ Map cfg = super.getConfig();
+ cfg.put( "hibernate.jdbc.batch_size", "0");
+ return cfg;
+ }
}
More information about the hibernate-commits
mailing list