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

📄 indexedcollectiontest.java

📁 hibernate3.2.6源码和jar包
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//$Id: IndexedCollectionTest.java 11282 2007-03-14 22:05:59Z epbernard $package org.hibernate.test.annotations.indexcoll;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.Hibernate;import org.hibernate.test.annotations.TestCase;/** * Test index collections * * @author Emmanuel Bernard */public class IndexedCollectionTest extends TestCase {	public void testFkList() throws Exception {		Wardrobe w = new Wardrobe();		Drawer d1 = new Drawer();		Drawer d2 = new Drawer();		w.setDrawers( new ArrayList<Drawer>() );		w.getDrawers().add( d1 );		w.getDrawers().add( d2 );		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		s.persist( w );		s.flush();		s.clear();		w = (Wardrobe) s.get( Wardrobe.class, w.getId() );		assertNotNull( w );		assertNotNull( w.getDrawers() );		List<Drawer> result = w.getDrawers();		assertEquals( 2, result.size() );		assertEquals( d2.getId(), result.get( 1 ).getId() );		result.remove( d1 );		s.flush();		d1 = (Drawer) s.merge( d1 );		result.add( d1 );		s.flush();		s.clear();		w = (Wardrobe) s.get( Wardrobe.class, w.getId() );		assertNotNull( w );		assertNotNull( w.getDrawers() );		result = w.getDrawers();		assertEquals( 2, result.size() );		assertEquals( d1.getId(), result.get( 1 ).getId() );		s.delete( result.get( 0 ) );		s.delete( result.get( 1 ) );		s.delete( w );		s.flush();		tx.rollback();		s.close();	}	public void testJoinedTableList() throws Exception {		Wardrobe w = new Wardrobe();		w.setDrawers( new ArrayList<Drawer>() );		Drawer d = new Drawer();		w.getDrawers().add( d );		Dress d1 = new Dress();		Dress d2 = new Dress();		d.setDresses( new ArrayList<Dress>() );		d.getDresses().add( d1 );		d.getDresses().add( d2 );		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		s.persist( d1 );		s.persist( d2 );		s.persist( w );		s.flush();		s.clear();		d = (Drawer) s.get( Drawer.class, d.getId() );		assertNotNull( d );		assertNotNull( d.getDresses() );		List<Dress> result = d.getDresses();		assertEquals( 2, result.size() );		assertEquals( d2.getId(), result.get( 1 ).getId() );		result.remove( d1 );		s.flush();		d1 = (Dress) s.merge( d1 );		result.add( d1 );		s.flush();		s.clear();		d = (Drawer) s.get( Drawer.class, d.getId() );		assertNotNull( d );		assertNotNull( d.getDresses() );		result = d.getDresses();		assertEquals( 2, result.size() );		assertEquals( d1.getId(), result.get( 1 ).getId() );		s.delete( result.get( 0 ) );		s.delete( result.get( 1 ) );		s.delete( d );		s.flush();		tx.rollback();		s.close();	}	public void testMapKey() throws Exception {		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		Software hibernate = new Software();		hibernate.setName( "Hibernate" );		Version v1 = new Version();		v1.setCodeName( "HumbaHumba" );		v1.setNumber( "1.0" );		v1.setSoftware( hibernate );		Version v2 = new Version();		v2.setCodeName( "Copacabana" );		v2.setNumber( "2.0" );		v2.setSoftware( hibernate );		Version v4 = new Version();		v4.setCodeName( "Dreamland" );		v4.setNumber( "4.0" );		v4.setSoftware( hibernate );		Map<String, Version> link = new HashMap<String, Version>();		link.put( v1.getCodeName(), v1 );		link.put( v2.getCodeName(), v2 );		link.put( v4.getCodeName(), v4 );		hibernate.setVersions( link );		s.persist( hibernate );		s.persist( v1 );		s.persist( v2 );		s.persist( v4 );		s.flush();		s.clear();		hibernate = (Software) s.get( Software.class, "Hibernate" );		assertEquals( 3, hibernate.getVersions().size() );		assertEquals( "1.0", hibernate.getVersions().get( "HumbaHumba" ).getNumber() );		assertEquals( "2.0", hibernate.getVersions().get( "Copacabana" ).getNumber() );		hibernate.getVersions().remove( v4.getCodeName() );		s.flush();		s.clear();		hibernate = (Software) s.get( Software.class, "Hibernate" );		assertEquals( "So effect on collection changes", 3, hibernate.getVersions().size() );		for ( Version v : hibernate.getVersions().values() ) {			s.delete( v );		}		s.delete( hibernate );		s.flush();		tx.rollback();		s.close();	}	public void testDefaultMapKey() throws Exception {		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		AddressBook book = new AddressBook();		book.setOwner( "Emmanuel" );		AddressEntryPk helene = new AddressEntryPk( "Helene", "Michau" );		AddressEntry heleneEntry = new AddressEntry();		heleneEntry.setBook( book );		heleneEntry.setCity( "Levallois" );		heleneEntry.setStreet( "Louis Blanc" );		heleneEntry.setPerson( helene );		AddressEntryPk primeMinister = new AddressEntryPk( "Dominique", "Villepin" );		AddressEntry primeMinisterEntry = new AddressEntry();		primeMinisterEntry.setBook( book );		primeMinisterEntry.setCity( "Paris" );		primeMinisterEntry.setStreet( "Hotel Matignon" );		primeMinisterEntry.setPerson( primeMinister );		book.getEntries().put( helene, heleneEntry );		book.getEntries().put( primeMinister, primeMinisterEntry );		s.persist( book );		s.flush();		s.clear();		book = (AddressBook) s.get( AddressBook.class, book.getId() );		assertEquals( 2, book.getEntries().size() );		assertEquals( heleneEntry.getCity(), book.getEntries().get( helene ).getCity() );		AddressEntryPk fake = new AddressEntryPk( "Fake", "Fake" );		book.getEntries().put( fake, primeMinisterEntry );		s.flush();		s.clear();		book = (AddressBook) s.get( AddressBook.class, book.getId() );		assertEquals( 2, book.getEntries().size() );		assertNull( book.getEntries().get( fake ) );		s.delete( book );		s.flush();		tx.rollback();		s.close();	}	public void testMapKeyToEntity() throws Exception {		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		AlphabeticalDirectory m = new AlphabeticalDirectory();		m.setName( "M" );		AlphabeticalDirectory v = new AlphabeticalDirectory();		v.setName( "V" );		s.persist( m );		s.persist( v );		AddressBook book = new AddressBook();		book.setOwner( "Emmanuel" );		AddressEntryPk helene = new AddressEntryPk( "Helene", "Michau" );		AddressEntry heleneEntry = new AddressEntry();		heleneEntry.setBook( book );		heleneEntry.setCity( "Levallois" );		heleneEntry.setStreet( "Louis Blanc" );		heleneEntry.setPerson( helene );		heleneEntry.setDirectory( m );		AddressEntryPk primeMinister = new AddressEntryPk( "Dominique", "Villepin" );		AddressEntry primeMinisterEntry = new AddressEntry();		primeMinisterEntry.setBook( book );		primeMinisterEntry.setCity( "Paris" );		primeMinisterEntry.setStreet( "Hotel Matignon" );		primeMinisterEntry.setPerson( primeMinister );		primeMinisterEntry.setDirectory( v );		book.getEntries().put( helene, heleneEntry );		book.getEntries().put( primeMinister, primeMinisterEntry );		s.persist( book );		s.flush();		s.clear();		book = (AddressBook) s.get( AddressBook.class, book.getId() );		assertEquals( 2, book.getEntries().size() );		assertEquals( heleneEntry.getCity(), book.getEntries().get( helene ).getCity() );		assertEquals( "M", book.getEntries().get( helene ).getDirectory().getName() );		s.delete( book );		tx.rollback();		s.close();	}	public void testComponentSubPropertyMapKey() throws Exception {		Session s;		Transaction tx;		s = openSession();		tx = s.beginTransaction();		AddressBook book = new AddressBook();		book.setOwner( "Emmanuel" );		AddressEntryPk helene = new AddressEntryPk( "Helene", "Michau" );		AddressEntry heleneEntry = new AddressEntry();		heleneEntry.setBook( book );		heleneEntry.setCity( "Levallois" );		heleneEntry.setStreet( "Louis Blanc" );		heleneEntry.setPerson( helene );		AddressEntryPk primeMinister = new AddressEntryPk( "Dominique", "Villepin" );		AddressEntry primeMinisterEntry = new AddressEntry();		primeMinisterEntry.setBook( book );		primeMinisterEntry.setCity( "Paris" );		primeMinisterEntry.setStreet( "Hotel Matignon" );

⌨️ 快捷键说明

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