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>
Show replies by date