[hibernate-commits] Hibernate SVN: r10594 - in branches/Branch_3_2/Hibernate3/test/org/hibernate/test: . any

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Oct 17 17:17:41 EDT 2006


Author: steve.ebersole at jboss.com
Date: 2006-10-17 17:17:39 -0400 (Tue, 17 Oct 2006)
New Revision: 10594

Added:
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Address.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/AnyTypeTest.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.hbm.xml
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.java
Modified:
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/AllTests.java
Log:
HHH-1663 : <any/> mappings during flush

Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/AllTests.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/AllTests.java	2006-10-17 21:16:52 UTC (rev 10593)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/AllTests.java	2006-10-17 21:17:39 UTC (rev 10594)
@@ -131,6 +131,7 @@
 import org.hibernate.test.version.db.DbVersionTest;
 import org.hibernate.test.version.sybase.SybaseTimestampVersioningTest;
 import org.hibernate.test.where.WhereTest;
+import org.hibernate.test.any.AnyTypeTest;
 
 /**
  * @author Gavin King
@@ -291,6 +292,7 @@
 			suite.addTest( AbstractComponentPropertyRefTest.suite() );
 			suite.addTest( AbstractCompositeIdTest.suite() );
 			suite.addTest( UtilSuite.suite() );
+			suite.addTest(AnyTypeTest.suite() );
 
 			return filter( suite );
 			//return suite;

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Address.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Address.java	2006-10-17 21:16:52 UTC (rev 10593)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Address.java	2006-10-17 21:17:39 UTC (rev 10594)
@@ -0,0 +1,30 @@
+package org.hibernate.test.any;
+
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * todo: describe Address
+ *
+ * @author Steve Ebersole
+ */
+public class Address {
+	private Long id;
+	private Set lines = new HashSet();
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Set getLines() {
+		return lines;
+	}
+
+	public void setLines(Set lines) {
+		this.lines = lines;
+	}
+}

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/AnyTypeTest.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/AnyTypeTest.java	2006-10-17 21:16:52 UTC (rev 10593)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/AnyTypeTest.java	2006-10-17 21:17:39 UTC (rev 10594)
@@ -0,0 +1,58 @@
+package org.hibernate.test.any;
+
+import org.hibernate.test.TestCase;
+import org.hibernate.Session;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * todo: describe AnyTypeTest
+ *
+ * @author Steve Ebersole
+ */
+public class AnyTypeTest extends TestCase {
+	public AnyTypeTest(String name) {
+		super( name );
+	}
+
+	protected String[] getMappings() {
+		return new String[] { "any/Person.hbm.xml" };
+	}
+
+	protected String getCacheConcurrencyStrategy() {
+		// having second level cache causes a condition whereby the original test case would not fail...
+		return null;
+	}
+
+	public static Test suite() {
+		return new TestSuite( AnyTypeTest.class );
+	}
+
+	/**
+	 * Specific test for HHH-1663...
+	 */
+	public void testFlushProcessing() {
+		Session session = openSession();
+		session.beginTransaction();
+		Person person = new Person();
+		Address address = new Address();
+		person.setData( address );
+		session.saveOrUpdate(person);
+		session.saveOrUpdate(address);
+		session.getTransaction().commit();
+		session.close();
+
+		session = openSession();
+		session.beginTransaction();
+        person = (Person) session.load( Person.class, person.getId() );
+        person.setName("makingpersondirty");
+		session.getTransaction().commit();
+		session.close();
+
+		session = openSession();
+		session.beginTransaction();
+		session.delete( person );
+		session.getTransaction().commit();
+		session.close();
+	}
+}

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.hbm.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.hbm.xml	2006-10-17 21:16:52 UTC (rev 10593)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.hbm.xml	2006-10-17 21:17:39 UTC (rev 10594)
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.any">
+
+    <class name="Person" table="T_ANY_PERSON">
+        <id name="id" column="ID_">
+            <generator class="increment" />
+        </id>
+        <property name="name" />
+        <any name="data" id-type="long" cascade="none">
+            <meta-value value="A" class="Address"/>
+            <column name="DATATYPE_"/>
+            <column name="DATAID_"/>
+        </any>
+    </class>
+
+    <class name="Address" table="T_ANY_ADDRESS">
+        <id name="id" column="ID_">
+            <generator class="increment" />
+        </id>
+        <set name="lines" table="LINE">
+            <key column="ADDRESS" />
+            <element type="string" />
+        </set>
+    </class>
+
+</hibernate-mapping>

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.java	2006-10-17 21:16:52 UTC (rev 10593)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/any/Person.java	2006-10-17 21:17:39 UTC (rev 10594)
@@ -0,0 +1,37 @@
+package org.hibernate.test.any;
+
+/**
+ * todo: describe Person
+ *
+ * @author Steve Ebersole
+ */
+public class Person {
+	private Long id;
+	private String name;
+	private Object data;
+
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Object getData() {
+		return data;
+	}
+
+	public void setData(Object data) {
+		this.data = data;
+	}
+}




More information about the hibernate-commits mailing list