From: <hib...@li...> - 2006-06-26 22:23:38
|
Author: epbernard Date: 2006-06-26 18:23:32 -0400 (Mon, 26 Jun 2006) New Revision: 10051 Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/Car.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/MovingThing.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java Log: tests on polymorphism Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/Car.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/Car.java 2006-06-25 16:27:43 UTC (rev 10050) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/Car.java 2006-06-26 22:23:32 UTC (rev 10051) @@ -0,0 +1,39 @@ +//$Id: $ +package org.hibernate.test.annotations.polymorphism; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + +import org.hibernate.annotations.PolymorphismType; + +/** + * @author Emmanuel Bernard + */ +@Entity +@Inheritance(strategy= InheritanceType.TABLE_PER_CLASS) +...@or...notations.Entity(polymorphism = PolymorphismType.EXPLICIT) +public class Car extends MovingThing { + private Integer id; + private String model; + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + @Id @GeneratedValue(strategy = GenerationType.TABLE ) + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } +} Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/MovingThing.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/MovingThing.java 2006-06-25 16:27:43 UTC (rev 10050) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/MovingThing.java 2006-06-26 22:23:32 UTC (rev 10051) @@ -0,0 +1,8 @@ +//$Id: $ +package org.hibernate.test.annotations.polymorphism; + +/** + * @author Emmanuel Bernard + */ +public class MovingThing { +} Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java 2006-06-25 16:27:43 UTC (rev 10050) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java 2006-06-26 22:23:32 UTC (rev 10051) @@ -0,0 +1,37 @@ +//$Id: $ +package org.hibernate.test.annotations.polymorphism; + +import org.hibernate.test.annotations.TestCase; +import org.hibernate.Session; +import org.hibernate.Transaction; + +/** + * @author Emmanuel Bernard + */ +public class PolymorphismTest extends TestCase { + + public void testPolymorphism() throws Exception { + Car car = new Car(); + car.setModel( "SUV" ); + SportCar car2 = new SportCar(); + car2.setModel( "350Z" ); + Session s = openSession(); + Transaction tx = s.beginTransaction(); + tx.begin(); + s.persist( car ); + s.persist( car2 ); + s.flush(); + assertEquals( 2, s.createQuery( "select car from Car car").list().size() ); + assertEquals( 0, s.createQuery( "select count(m) from " + MovingThing.class.getName() + " m").list().size() ); + tx.rollback(); + s.close(); + + } + + protected Class[] getMappings() { + return new Class[] { + Car.class, + SportCar.class + }; + } +} Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java 2006-06-25 16:27:43 UTC (rev 10050) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java 2006-06-26 22:23:32 UTC (rev 10051) @@ -0,0 +1,13 @@ +//$Id: $ +package org.hibernate.test.annotations.polymorphism; + +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * @author Emmanuel Bernard + */ +@Entity +@Table(name = "sport_car") +public class SportCar extends Car { +} |