From: <hib...@li...> - 2006-08-04 18:24:08
|
Author: ste...@jb... Date: 2006-08-04 14:24:04 -0400 (Fri, 04 Aug 2006) New Revision: 10218 Modified: trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/JoinedSubclassTest.java trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.hbm.xml trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.java Log: HHH-1848 : locking on versioned joined subclasses Modified: trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/JoinedSubclassTest.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/JoinedSubclassTest.java 2006-08-04 17:40:56 UTC (rev 10217) +++ trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/JoinedSubclassTest.java 2006-08-04 18:24:04 UTC (rev 10218) @@ -11,6 +11,7 @@ import org.hibernate.Hibernate; import org.hibernate.Session; import org.hibernate.Transaction; +import org.hibernate.LockMode; import org.hibernate.criterion.Expression; import org.hibernate.criterion.Property; import org.hibernate.dialect.DB2Dialect; @@ -141,6 +142,32 @@ s.close(); } + public void testLockingJoinedSubclass() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Person p = new Person(); + p.setName("Emmanuel"); + p.setSex('M'); + s.persist(p); + Employee q = new Employee(); + q.setName("Steve"); + q.setSex('M'); + q.setTitle("Mr"); + q.setSalary( new BigDecimal(1000) ); + s.persist(q); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + s.lock( p, LockMode.UPGRADE ); + s.lock( q, LockMode.UPGRADE ); + s.delete( p ); + s.delete( q ); + t.commit(); + s.close(); + + } protected String[] getMappings() { return new String[] { "joinedsubclass/Person.hbm.xml" }; Modified: trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.hbm.xml =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.hbm.xml 2006-08-04 17:40:56 UTC (rev 10217) +++ trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.hbm.xml 2006-08-04 18:24:04 UTC (rev 10218) @@ -26,8 +26,10 @@ unsaved-value="0"> <generator class="native"/> </id> - - <property name="name" + + <version name="version" column="version" type="int"/> + + <property name="name" not-null="true" length="80"/> <property name="sex" Modified: trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.java 2006-08-04 17:40:56 UTC (rev 10217) +++ trunk/Hibernate3/test/org/hibernate/test/joinedsubclass/Person.java 2006-08-04 18:24:04 UTC (rev 10218) @@ -9,6 +9,7 @@ private long id; private String name; private char sex; + private int version; private Address address = new Address(); /** * @return Returns the address. @@ -67,4 +68,11 @@ this.name = identity; } + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } } |