[hibernate-commits] Hibernate SVN: r10453 - trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Sep 5 16:38:25 EDT 2006


Author: epbernard
Date: 2006-09-05 16:38:24 -0400 (Tue, 05 Sep 2006)
New Revision: 10453

Added:
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.hbm.xml
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/FinancialAsset.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Parent.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Pool.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/PropertyAsset.java
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SwimmingPool.java
Modified:
   trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java
Log:
add tests on joined and secondary tables

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.hbm.xml
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.hbm.xml	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.hbm.xml	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,36 @@
+<?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.annotations.inheritance.joined">
+
+    <class name="Parent">
+        <id name="id">
+            <generator class="native"/>
+        </id>
+        <set name="financialAssets" fetch="join" cascade="refresh" inverse="true">
+            <key column="PARENT_ID"/>
+            <one-to-many class="FinancialAsset"/>
+        </set>
+        <set name="propertyAssets" fetch="join" cascade="refresh" inverse="true">
+            <key column="PARENT_ID"/>
+            <one-to-many class="PropertyAsset"/>
+        </set>
+    </class>
+    <class name="Asset">
+        <id name="id">
+            <generator class="native"/>
+        </id>
+        <many-to-one name="parent" column="PARENT_ID" property-ref="parent"/>
+        <joined-subclass name="FinancialAsset">
+            <key column="ID"/>
+            <property name="price"/>
+        </joined-subclass>
+        <joined-subclass name="PropertyAsset">
+            <key column="ID"/>
+            <property name="price"/>
+        </joined-subclass>
+    </class>
+
+</hibernate-mapping>
\ No newline at end of file

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Asset.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,41 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+ at Inheritance(strategy = InheritanceType.JOINED)
+ at Table(name = "TBLASSET")
+public class Asset {
+	private Integer id;
+
+	private Parent parent = null;
+
+	@Id @GeneratedValue public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	@ManyToOne(targetEntity = Parent.class)
+	@JoinColumn(name = "PARENTID")
+	public Parent getParent() {
+		return parent;
+	}
+
+	public void setParent(Parent parent) {
+		this.parent = parent;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/FinancialAsset.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/FinancialAsset.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/FinancialAsset.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,20 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class FinancialAsset extends Asset {
+	private double price;
+
+	public double getPrice() {
+		return price;
+	}
+
+	public void setPrice(double price) {
+		this.price = price;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,33 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.test.annotations.TestCase;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class JoinedSubclassAndSecondaryTable extends TestCase {
+
+	public void testSecondaryTableAndJoined() throws Exception {
+		Session s = openSession();
+		Transaction tx = s.beginTransaction();
+		SwimmingPool sp = new SwimmingPool();
+		sp.setAddress( "Park Avenue" );
+		s.persist( sp );
+		tx.rollback();
+		s.close();
+	}
+
+	/**
+	 * @see org.hibernate.test.annotations.TestCase#getMappings()
+	 */
+	protected Class[] getMappings() {
+		return new Class[]{
+				Pool.class,
+				SwimmingPool.class
+		};
+	}
+
+}

Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -123,6 +123,37 @@
 		session.close();
 	}
 
+//	public void testManyToOneAndJoin() throws Exception {
+//		Session session = openSession();
+//		Transaction transaction = session.beginTransaction();
+//		Parent parent = new Parent();
+//		session.persist( parent );
+//		PropertyAsset property = new PropertyAsset();
+//		property.setParent( parent );
+//		property.setPrice( 230000d );
+//		FinancialAsset financial = new FinancialAsset();
+//		financial.setParent( parent );
+//		financial.setPrice( 230000d );
+//		session.persist( financial );
+//		session.persist( property );
+//		session.flush();
+//		session.clear();
+//		parent = (Parent) session.get( Parent.class, parent.getId() );
+//		assertNotNull( parent );
+//		assertEquals( 1, parent.getFinancialAssets().size() );
+//		assertEquals( 1, parent.getPropertyAssets().size() );
+//		assertEquals( property.getId(), parent.getPropertyAssets().iterator().next() );
+//		transaction.rollback();
+//		session.close();
+//	}
+
+	@Override
+	protected String[] getXmlFiles() {
+		return new String[] {
+				//"org/hibernate/test/annotations/inheritance/joined/Asset.hbm.xml"
+		};
+	}
+
 	/**
 	 * @see org.hibernate.test.annotations.TestCase#getMappings()
 	 */
@@ -136,7 +167,11 @@
 				Clothing.class,
 				Sweater.class,
 				EventInformation.class,
-				Alarm.class
+				Alarm.class,
+				//Asset.class,
+				//Parent.class,
+				//PropertyAsset.class,
+				//FinancialAsset.class
 		};
 	}
 

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Parent.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Parent.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Parent.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,49 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import java.util.HashSet;
+import java.util.Set;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+ at Table(name = "Parent")
+public class Parent {
+	private Integer id;
+	private Set propertyAssets = new HashSet();
+	private Set financialAssets = new HashSet();
+
+	@Id @GeneratedValue public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	@OneToMany(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER, mappedBy = "parent", targetEntity = PropertyAsset.class)
+	public Set getPropertyAssets() {
+		return this.propertyAssets;
+	}
+
+	public void setPropertyAssets(Set propertyAssets) {
+		this.propertyAssets = propertyAssets;
+	}
+
+	@OneToMany(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER, mappedBy = "parent", targetEntity = FinancialAsset.class)
+	public Set getFinancialAssets() {
+		return this.financialAssets;
+	}
+
+	public void setFinancialAssets(Set financialAssets) {
+		this.financialAssets = financialAssets;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Pool.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Pool.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/Pool.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,38 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import javax.persistence.Entity;
+import javax.persistence.SecondaryTable;
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+ at Inheritance(strategy = InheritanceType.JOINED)
+ at SecondaryTable(name="POOL_ADDRESS")
+public class Pool {
+	@Id @GeneratedValue private Integer id;
+	@Column(table = "POOL_ADDRESS")
+	private String address;
+
+	public String getAddress() {
+		return address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/PropertyAsset.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/PropertyAsset.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/PropertyAsset.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,20 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class PropertyAsset extends Asset {
+	private double price;
+
+	public double getPrice() {
+		return price;
+	}
+
+	public void setPrice(double price) {
+		this.price = price;
+	}
+}

Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SwimmingPool.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SwimmingPool.java	2006-09-05 16:49:05 UTC (rev 10452)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/joined/SwimmingPool.java	2006-09-05 20:38:24 UTC (rev 10453)
@@ -0,0 +1,11 @@
+//$Id: $
+package org.hibernate.test.annotations.inheritance.joined;
+
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class SwimmingPool extends Pool {
+}
\ No newline at end of file




More information about the hibernate-commits mailing list