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
+ */
+@Entity
+@Inheritance(strategy = InheritanceType.JOINED)
+@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
+ */
+@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
+ */
+@Entity
+@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
+ */
+@Entity
+@Inheritance(strategy = InheritanceType.JOINED)
+@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
+ */
+@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
+ */
+@Entity
+public class SwimmingPool extends Pool {
+}
\ No newline at end of file
Show replies by date