[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