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

📄 jointest.java

📁 hibernate3.2.6源码和jar包
💻 JAVA
字号:
//$Id: JoinTest.java 12910 2007-08-09 16:20:27Z epbernard $package org.hibernate.test.annotations.join;import java.util.Date;import org.hibernate.Criteria;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.criterion.Expression;import org.hibernate.mapping.Join;import org.hibernate.test.annotations.TestCase;/** * @author Emmanuel Bernard */public class JoinTest extends TestCase {	public JoinTest(String x) {		super( x );	}	public void testDefaultValue() throws Exception {		Join join = (Join) getCfg().getClassMapping( Life.class.getName() ).getJoinClosureIterator().next();		assertEquals( "ExtendedLife", join.getTable().getName() );		org.hibernate.mapping.Column owner = new org.hibernate.mapping.Column();		owner.setName( "LIFE_ID" );		assertTrue( join.getTable().getPrimaryKey().containsColumn( owner ) );		Session s = openSession();		Transaction tx = s.beginTransaction();		Life life = new Life();		life.duration = 15;		life.fullDescription = "Long long description";		s.persist( life );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		Query q = s.createQuery( "from " + Life.class.getName() );		life = (Life) q.uniqueResult();		assertEquals( "Long long description", life.fullDescription );		tx.commit();		s.close();	}	public void testCompositePK() throws Exception {		Join join = (Join) getCfg().getClassMapping( Dog.class.getName() ).getJoinClosureIterator().next();		assertEquals( "DogThoroughbred", join.getTable().getName() );		org.hibernate.mapping.Column owner = new org.hibernate.mapping.Column();		owner.setName( "OWNER_NAME" );		assertTrue( join.getTable().getPrimaryKey().containsColumn( owner ) );		Session s = openSession();		Transaction tx = s.beginTransaction();		Dog dog = new Dog();		DogPk id = new DogPk();		id.name = "Thalie";		id.ownerName = "Martine";		dog.id = id;		dog.weight = 30;		dog.thoroughbredName = "Colley";		s.persist( dog );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		Query q = s.createQuery( "from Dog" );		dog = (Dog) q.uniqueResult();		assertEquals( "Colley", dog.thoroughbredName );		tx.commit();		s.close();	}	public void testExplicitValue() throws Exception {		Session s = openSession();		Transaction tx = s.beginTransaction();		Death death = new Death();		death.date = new Date();		death.howDoesItHappen = "Well, haven't seen it";		s.persist( death );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		Query q = s.createQuery( "from " + Death.class.getName() );		death = (Death) q.uniqueResult();		assertEquals( "Well, haven't seen it", death.howDoesItHappen );		s.delete( death );		tx.commit();		s.close();	}	public void testManyToOne() throws Exception {		Session s = openSession();		Transaction tx = s.beginTransaction();		Life life = new Life();		Cat cat = new Cat();		cat.setName( "kitty" );		life.duration = 15;		life.fullDescription = "Long long description";		life.owner = cat;		s.persist( life );		tx.commit();		s.close();		s = openSession();		tx = s.beginTransaction();		Criteria crit = s.createCriteria( Life.class );		crit.createCriteria( "owner" ).add( Expression.eq( "name", "kitty" ) );		life = (Life) crit.uniqueResult();		assertEquals( "Long long description", life.fullDescription );		s.delete( life.owner );		s.delete( life );		tx.commit();		s.close();	}	public void testUniqueConstaintOnSecondaryTable() throws Exception {		Cat cat = new Cat();		cat.setStoryPart2( "My long story" );		Cat cat2 = new Cat();		cat2.setStoryPart2( "My long story" );		Session s = openSession();		Transaction tx = s.beginTransaction();		try {			s.persist( cat );			s.persist( cat2 );			tx.commit();			fail( "unique constraints violation on secondary table" );		}		catch (HibernateException e) {			//success		}		finally {			if ( tx != null ) tx.rollback();			s.close();		}	}	public void testFetchModeOnSecondaryTable() throws Exception {		Cat cat = new Cat();		cat.setStoryPart2( "My long story" );		Session s = openSession();		Transaction tx = s.beginTransaction();		s.persist( cat );		s.flush();		s.clear();				s.get( Cat.class, cat.getId() );		//Find a way to test it, I need to define the secondary table on a subclass		tx.rollback();		s.close();	}	public void testCustomSQL() throws Exception {		Cat cat = new Cat();		String storyPart2 = "My long story";		cat.setStoryPart2( storyPart2 );		Session s = openSession();		Transaction tx = s.beginTransaction();		s.persist( cat );		s.flush();		s.clear();		Cat c = (Cat) s.get( Cat.class, cat.getId() );		assertEquals( storyPart2.toUpperCase(), c.getStoryPart2() );		tx.rollback();		s.close();	}	public void testMappedSuperclassAndSecondaryTable() throws Exception {		Session s = openSession( );		s.getTransaction().begin();		C c = new C();		c.setAge( 12 );		c.setCreateDate( new Date() );		c.setName( "Bob" );		s.persist( c );		s.flush();		s.clear();		c= (C) s.get( C.class, c.getId() );		assertNotNull( c.getCreateDate() );		assertNotNull( c.getName() );		s.getTransaction().rollback();		s.close();	}	/**	 * @see org.hibernate.test.annotations.TestCase#getMappings()	 */	protected Class[] getMappings() {		return new Class[]{				Life.class,				Death.class,				Cat.class,				Dog.class,				A.class,				B.class,				C.class		};	}}

⌨️ 快捷键说明

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