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

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Dec 1 09:16:44 EST 2006


Author: epbernard
Date: 2006-12-01 09:16:43 -0500 (Fri, 01 Dec 2006)
New Revision: 10907

Added:
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Card.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/CardField.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Key.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/KeyManyToOneTestCase.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/PrimaryKey.java
   branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/card.hbm.xml
Log:
HHH-2277 infinite loop test case

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Card.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Card.java	2006-12-01 14:12:28 UTC (rev 10906)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Card.java	2006-12-01 14:16:43 UTC (rev 10907)
@@ -0,0 +1,38 @@
+//$Id: $
+package org.hibernate.test.keymanytoone;
+
+import java.io.Serializable;
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class Card implements Serializable {
+	private String id;
+
+	private Set fields;
+
+	public Card(String id) {
+		this();
+		this.id = id;
+
+	}
+
+	Card() {
+		fields = new HashSet();
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public void addField(Card card, Key key) {
+		fields.add(new CardField(card, key));
+	}
+}
+

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/CardField.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/CardField.java	2006-12-01 14:12:28 UTC (rev 10906)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/CardField.java	2006-12-01 14:16:43 UTC (rev 10907)
@@ -0,0 +1,19 @@
+//$Id: $
+package org.hibernate.test.keymanytoone;
+
+import java.io.Serializable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class CardField implements Serializable {
+
+	private PrimaryKey primaryKey;
+
+	CardField(Card card, Key key) {
+		this.primaryKey = new PrimaryKey(card, key);
+	}
+
+	CardField() {
+	}
+}

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Key.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Key.java	2006-12-01 14:12:28 UTC (rev 10906)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/Key.java	2006-12-01 14:16:43 UTC (rev 10907)
@@ -0,0 +1,18 @@
+//$Id: $
+package org.hibernate.test.keymanytoone;
+
+import java.io.Serializable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class Key implements Serializable {
+	private String id;
+
+	public Key(String id) {
+		this.id = id;
+	}
+
+	Key() {
+	}
+}

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/KeyManyToOneTestCase.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/KeyManyToOneTestCase.java	2006-12-01 14:12:28 UTC (rev 10906)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/KeyManyToOneTestCase.java	2006-12-01 14:16:43 UTC (rev 10907)
@@ -0,0 +1,34 @@
+//$Id: $
+package org.hibernate.test.keymanytoone;
+
+import org.hibernate.test.TestCase;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class KeyManyToOneTestCase extends TestCase {
+	public void testInfiniteLoop() throws Exception {
+		Card card = new Card("cardId");
+		Key key = new Key("keyId");
+		card.addField(card, key);
+		Session s = openSession();
+		Transaction tx = s.beginTransaction();
+		s.persist( key );
+		s.persist( card );
+		s.flush();
+		s.clear();
+		s.get( Card.class, card.getId() );
+		tx.rollback();
+	}
+	public KeyManyToOneTestCase(String name) {
+		super( name );
+	}
+
+	protected String[] getMappings() {
+		return new String[] {
+				"keymanytoone/card.hbm.xml"
+		};
+	}
+}

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/PrimaryKey.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/PrimaryKey.java	2006-12-01 14:12:28 UTC (rev 10906)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/PrimaryKey.java	2006-12-01 14:16:43 UTC (rev 10907)
@@ -0,0 +1,21 @@
+//$Id: $
+package org.hibernate.test.keymanytoone;
+
+import java.io.Serializable;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class PrimaryKey implements Serializable {
+	private Card card;
+
+	private Key key;
+
+	public PrimaryKey(Card card, Key key) {
+		this.card = card;
+		this.key = key;
+	}
+
+	PrimaryKey() {}
+
+}

Added: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/card.hbm.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/card.hbm.xml	2006-12-01 14:12:28 UTC (rev 10906)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/keymanytoone/card.hbm.xml	2006-12-01 14:16:43 UTC (rev 10907)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC 
+	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<!-- 
+
+  This mapping demonstrates 
+
+     (1) use of lazy properties - this feature requires buildtime 
+         bytecode instrumentation; we don't think this is a very
+         necessary feature, but provide it for completeleness; if
+         Hibernate encounters uninstrumented classes, lazy property
+         fetching will be silently disabled, to enable testing
+     
+     (2) use of a formula to define a "derived property"
+     
+-->
+
+<hibernate-mapping 
+	package="org.hibernate.test.keymanytoone"
+	default-access="field">
+ 	
+	<class name="Card">
+    	<id name="id"/>
+    	<set name="fields" cascade="all" fetch="join" lazy="false">
+			<key>
+				<column name="card_id"/>
+			</key>
+			<one-to-many class="CardField"/>
+		</set>
+	</class>
+	<class name="Key" table="tbl_key">
+    	<id name="id"/>
+	</class>
+	<class name="CardField">
+    	<composite-id name="primaryKey">
+			<key-many-to-one name="card" class="Card" lazy="false">
+				<column name="card_id"/>
+			</key-many-to-one>
+			<key-many-to-one name="key" class="Key" lazy="false">
+				<column name="key_id"/>
+			</key-many-to-one>
+		</composite-id>
+	</class>
+ 	
+
+</hibernate-mapping>




More information about the hibernate-commits mailing list