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

📄 collectionelementtest.java

📁 hibernate3.2.6源码和jar包
💻 JAVA
字号:
//$Id: CollectionElementTest.java 14425 2008-03-14 15:50:34Z epbernard $package org.hibernate.test.annotations.collectionelement;import java.util.Iterator;import java.util.List;import java.util.Locale;import org.hibernate.Filter;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.test.annotations.Country;import org.hibernate.test.annotations.TestCase;/** * @author Emmanuel Bernard */public class CollectionElementTest extends TestCase {	public void testSimpleElement() throws Exception {		assertEquals(				"BoyFavoriteNumbers",				getCfg().getCollectionMapping( Boy.class.getName() + '.' + "favoriteNumbers" )						.getCollectionTable().getName()		);		Session s = openSession();		s.getTransaction().begin();		Boy boy = new Boy();		boy.setFirstName( "John" );		boy.setLastName( "Doe" );		boy.getNickNames().add( "Johnny" );		boy.getNickNames().add( "Thing" );		boy.getScorePerNickName().put( "Johnny", new Integer( 3 ) );		boy.getScorePerNickName().put( "Thing", new Integer( 5 ) );		int[] favNbrs = new int[4];		for (int index = 0; index < favNbrs.length - 1; index++) {			favNbrs[index] = index * 3;		}		boy.setFavoriteNumbers( favNbrs );		boy.getCharacters().add( Character.GENTLE );		boy.getCharacters().add( Character.CRAFTY );		s.persist( boy );		s.getTransaction().commit();		s.clear();		Transaction tx = s.beginTransaction();		boy = (Boy) s.get( Boy.class, boy.getId() );		assertNotNull( boy.getNickNames() );		assertTrue( boy.getNickNames().contains( "Thing" ) );		assertNotNull( boy.getScorePerNickName() );		assertTrue( boy.getScorePerNickName().containsKey( "Thing" ) );		assertEquals( new Integer( 5 ), boy.getScorePerNickName().get( "Thing" ) );		assertNotNull( boy.getFavoriteNumbers() );		assertEquals( 3, boy.getFavoriteNumbers()[1] );		assertTrue( boy.getCharacters().contains( Character.CRAFTY ) );		List result = s.createQuery( "select boy from Boy boy join boy.nickNames names where names = :name" )				.setParameter( "name", "Thing" ).list();		assertEquals( 1, result.size() );		s.delete( boy );		tx.commit();		s.close();	}	public void testCompositeElement() throws Exception {		Session s = openSession();		s.getTransaction().begin();		Boy boy = new Boy();		boy.setFirstName( "John" );		boy.setLastName( "Doe" );		Toy toy = new Toy();		toy.setName( "Balloon" );		toy.setSerial( "serial001" );		toy.setBrand( new Brand() );		toy.getBrand().setName( "Bandai" );		boy.getFavoriteToys().add( toy );		s.persist( boy );		s.getTransaction().commit();		s.clear();		Transaction tx = s.beginTransaction();		boy = (Boy) s.get( Boy.class, boy.getId() );		assertNotNull( boy.getFavoriteToys() );		assertTrue( boy.getFavoriteToys().contains( toy ) );		assertEquals( "@Parent is failing", boy, boy.getFavoriteToys().iterator().next().getOwner() );		s.delete( boy );		tx.commit();		s.close();	}	public void testAttributedJoin() throws Exception {		Session s = openSession();		s.getTransaction().begin();		Country country = new Country();		country.setName( "Australia" );		s.persist( country );		Boy boy = new Boy();		boy.setFirstName( "John" );		boy.setLastName( "Doe" );		CountryAttitude attitude = new CountryAttitude();		// TODO: doesn't work		attitude.setBoy( boy );		attitude.setCountry( country );		attitude.setLikes( true );		boy.getCountryAttitudes().add( attitude );		s.persist( boy );		s.getTransaction().commit();		s.clear();		Transaction tx = s.beginTransaction();		boy = (Boy) s.get( Boy.class, boy.getId() );		assertTrue( boy.getCountryAttitudes().contains( attitude ) );		s.delete( boy );		s.delete( s.get( Country.class, country.getId() ) );		tx.commit();		s.close();	}	public void testLazyCollectionofElements() throws Exception {		assertEquals(				"BoyFavoriteNumbers",				getCfg().getCollectionMapping( Boy.class.getName() + '.' + "favoriteNumbers" )						.getCollectionTable().getName()		);		Session s = openSession();		s.getTransaction().begin();		Boy boy = new Boy();		boy.setFirstName( "John" );		boy.setLastName( "Doe" );		boy.getNickNames().add( "Johnny" );		boy.getNickNames().add( "Thing" );		boy.getScorePerNickName().put( "Johnny", new Integer( 3 ) );		boy.getScorePerNickName().put( "Thing", new Integer( 5 ) );		int[] favNbrs = new int[4];		for (int index = 0; index < favNbrs.length - 1; index++) {			favNbrs[index] = index * 3;		}		boy.setFavoriteNumbers( favNbrs );		boy.getCharacters().add( Character.GENTLE );		boy.getCharacters().add( Character.CRAFTY );		s.persist( boy );		s.getTransaction().commit();		s.clear();		Transaction tx = s.beginTransaction();		boy = (Boy) s.get( Boy.class, boy.getId() );		assertNotNull( boy.getNickNames() );		assertTrue( boy.getNickNames().contains( "Thing" ) );		assertNotNull( boy.getScorePerNickName() );		assertTrue( boy.getScorePerNickName().containsKey( "Thing" ) );		assertEquals( new Integer( 5 ), boy.getScorePerNickName().get( "Thing" ) );		assertNotNull( boy.getFavoriteNumbers() );		assertEquals( 3, boy.getFavoriteNumbers()[1] );		assertTrue( boy.getCharacters().contains( Character.CRAFTY ) );		List result = s.createQuery( "select boy from Boy boy join boy.nickNames names where names = :name" )				.setParameter( "name", "Thing" ).list();		assertEquals( 1, result.size() );		s.delete( boy );		tx.commit();		s.close();	}	public void testFetchEagerAndFilter() throws Exception {		Session s = openSession();		Transaction tx = s.beginTransaction();		TestCourse test = new TestCourse();		LocalizedString title = new LocalizedString( "title in english" );		title.getVariations().put( Locale.FRENCH.getLanguage(), "title en francais" );		test.setTitle( title );		s.save( test );		s.flush();		s.clear();		Filter filter = s.enableFilter( "selectedLocale" );		filter.setParameter( "param", "fr" );		Query q = s.createQuery( "from TestCourse t" );		List l = q.list();		assertEquals( 1, l.size() );		TestCourse t = (TestCourse) s.get( TestCourse.class, test.getTestCourseId() );		Iterator it = t.getTitle().getVariations().values().iterator();		assertEquals( 1, t.getTitle().getVariations().size() );		tx.rollback();		s.close();	}	public void testMapKeyType() throws Exception {		Matrix m = new Matrix();		m.getValues().put( 1, 1.1f );		Session s = openSession();		Transaction tx = s.beginTransaction();		s.persist( m );		s.flush();		s.clear();		m = (Matrix) s.get( Matrix.class, m.getId() );		assertEquals( 1.1f, m.getValues().get( 1 ) );		tx.rollback();		s.close();	}	protected Class[] getMappings() {		return new Class[] {				Boy.class,				Country.class,				TestCourse.class,				Matrix.class		};	}}

⌨️ 快捷键说明

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