⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subclasstest.java

📁 hibernate3.2.6源码和jar包
💻 JAVA
字号:
//$Id: SubclassTest.java 11282 2007-03-14 22:05:59Z epbernard $package org.hibernate.test.annotations.inheritance;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.test.annotations.A320;import org.hibernate.test.annotations.A320b;import org.hibernate.test.annotations.Plane;import org.hibernate.test.annotations.TestCase;import org.hibernate.test.annotations.inheritance.singletable.Funk;import org.hibernate.test.annotations.inheritance.singletable.Music;import org.hibernate.test.annotations.inheritance.singletable.Noise;import org.hibernate.test.annotations.inheritance.singletable.Rock;/** * @author Emmanuel Bernard */public class SubclassTest extends TestCase {	public SubclassTest(String x) {		super( x );	}	public void testPolymorphism() throws Exception {		Session s = openSession();		Transaction tx = s.beginTransaction();		Plane p = new Plane();		p.setNbrOfSeats( 10 );		A320 a = new A320();		a.setJavaEmbeddedVersion( "5.0" );		a.setNbrOfSeats( 300 );		s.persist( a );		s.persist( p );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		Query q = s.createQuery( "from " + A320.class.getName() );		List a320s = q.list();		assertNotNull( a320s );		assertEquals( 1, a320s.size() );		assertTrue( a320s.get( 0 ) instanceof A320 );		assertEquals( "5.0", ( (A320) a320s.get( 0 ) ).getJavaEmbeddedVersion() );		q = s.createQuery( "from " + Plane.class.getName() );		List planes = q.list();		assertNotNull( planes );		assertEquals( 2, planes.size() );		tx.commit();		s.close();	}	public void test2ndLevelSubClass() throws Exception {		Session s = openSession();		Transaction tx = s.beginTransaction();		A320b a = new A320b();		a.setJavaEmbeddedVersion( "Elephant" );		a.setNbrOfSeats( 300 );		s.persist( a );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		Query q = s.createQuery( "from " + A320.class.getName() + " as a where a.javaEmbeddedVersion = :version" );		q.setString( "version", "Elephant" );		List a320s = q.list();		assertNotNull( a320s );		assertEquals( 1, a320s.size() );		tx.commit();		s.close();	}	public void testEmbeddedSuperclass() throws Exception {		Session s = openSession();		Transaction tx = s.beginTransaction();		Plane p = new Plane();		p.setAlive( true ); //sic		p.setAltitude( 10000 );		p.setMetricAltitude( 3000 );		p.setNbrOfSeats( 150 );		p.setSerial( "0123456789" );		s.persist( p );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		p = (Plane) s.get( Plane.class, p.getId() );		assertNotNull( p );		assertEquals( true, p.isAlive() );		assertEquals( 150, p.getNbrOfSeats() );		assertEquals( 10000, p.getAltitude() );		assertEquals( "0123456789", p.getSerial() );		assertFalse( 3000 == p.getMetricAltitude() );		s.delete( p );		tx.commit();		s.close();	}	public void testFormula() throws Exception {		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		Rock guns = new Rock();		guns.setAvgBeat( 90 );		guns.setType( 2 );		Noise white = new Noise();		white.setAvgBeat( 0 );		white.setType( null );		s.persist( guns );		s.persist( white );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		List result = s.createCriteria( Noise.class ).list();		assertNotNull( result );		assertEquals( 1, result.size() );		white = (Noise) result.get( 0 );		assertNull( white.getType() );		s.delete( white );		result = s.createCriteria( Rock.class ).list();		assertEquals( 1, result.size() );		s.delete( result.get( 0 ) );		result = s.createCriteria( Funk.class ).list();		assertEquals( 0, result.size() );		tx.commit();		s.close();	}	private void checkClassType(Fruit fruitToTest, Fruit f, Apple a) {		if ( fruitToTest.getId().equals( f.getId() ) ) {			assertFalse( fruitToTest instanceof Apple );		}		else if ( fruitToTest.getId().equals( a.getId() ) ) {			assertTrue( fruitToTest instanceof Apple );		}		else {			fail( "Result does not contains the previously inserted elements" );		}	}	/**	 * @see org.hibernate.test.annotations.TestCase#getMappings()	 */	protected Class[] getMappings() {		return new Class[]{				A320b.class, //subclasses should be properly reordered				Plane.class,				A320.class,				Fruit.class,				//FlyingObject.class, //had to declare embedded superclasses				//Thing.class,				Apple.class,				Music.class,				Rock.class,				Funk.class,				Noise.class		};	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -