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

📄 subselectfetchtest.java

📁 介绍了hibernate的入门有一些基本常用的事例
💻 JAVA
字号:
//$Id: SubselectFetchTest.java,v 1.2 2005/04/03 03:56:22 oneovthafew Exp $package org.hibernate.test.subselectfetch;import java.util.List;import junit.framework.Test;import junit.framework.TestSuite;import org.hibernate.FetchMode;import org.hibernate.Hibernate;import org.hibernate.Session;import org.hibernate.Transaction;import org.hibernate.criterion.Order;import org.hibernate.criterion.Property;import org.hibernate.test.TestCase;/** * @author Gavin King */public class SubselectFetchTest extends TestCase {		public SubselectFetchTest(String str) {		super(str);	}		public void testSubselectFetchWithLimit() {		Session s = openSession();		Transaction t = s.beginTransaction();		Parent p = new Parent("foo");		p.getChildren().add( new Child("foo1") );		p.getChildren().add( new Child("foo2") );		Parent q = new Parent("bar");		q.getChildren().add( new Child("bar1") );		q.getChildren().add( new Child("bar2") );		Parent r = new Parent("aaa");		r.getChildren().add( new Child("aaa1") );		s.persist(p); 		s.persist(q);		s.persist(r);		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();				List parents = s.createQuery("from Parent order by name desc")			.setMaxResults(2)			.list();		p = (Parent) parents.get(0);		q = (Parent) parents.get(1);		assertFalse( Hibernate.isInitialized( p.getChildren() ) );		assertFalse( Hibernate.isInitialized( p.getMoreChildren() ) );		assertFalse( Hibernate.isInitialized( q.getChildren() ) );		assertFalse( Hibernate.isInitialized( q.getMoreChildren() ) );		assertEquals( p.getMoreChildren().size(), 0 );		assertEquals( p.getChildren().size(), 2 );		assertTrue( Hibernate.isInitialized( q.getChildren() ) );		assertTrue( Hibernate.isInitialized( q.getMoreChildren() ) );				r = (Parent) s.get( Parent.class, r.getName() );		assertTrue( Hibernate.isInitialized( r.getChildren() ) );		assertFalse( Hibernate.isInitialized( r.getMoreChildren() ) );		assertEquals( r.getChildren().size(), 1 );		assertEquals( r.getMoreChildren().size(), 0 );		s.delete(p);		s.delete(q);				s.delete(r);				t.commit();		s.close();	}		public void testManyToManyCriteriaJoin() {		Session s = openSession();		Transaction t = s.beginTransaction();		Parent p = new Parent("foo");		p.getChildren().add( new Child("foo1") );		p.getChildren().add( new Child("foo2") );		Parent q = new Parent("bar");		q.getChildren().add( new Child("bar1") );		q.getChildren().add( new Child("bar2") );		q.getMoreChildren().addAll( p.getChildren() );		s.persist(p); 		s.persist(q);		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();				List parents = s.createCriteria(Parent.class)			.createCriteria("moreChildren")			.createCriteria("friends")			.addOrder( Order.desc("name") )			.list();		parents = s.createCriteria(Parent.class)			.setFetchMode("moreChildren", FetchMode.JOIN)			.setFetchMode("moreChildren.friends", FetchMode.JOIN)			.addOrder( Order.desc("name") )			.list();		s.delete( parents.get(0) );		s.delete( parents.get(1) );		t.commit();		s.close();	}		public void testSubselectFetch() {		Session s = openSession();		Transaction t = s.beginTransaction();		Parent p = new Parent("foo");		p.getChildren().add( new Child("foo1") );		p.getChildren().add( new Child("foo2") );		Parent q = new Parent("bar");		q.getChildren().add( new Child("bar1") );		q.getChildren().add( new Child("bar2") );		q.getMoreChildren().addAll( p.getChildren() );		s.persist(p); 		s.persist(q);		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();				List parents = s.createCriteria(Parent.class)			.add( Property.forName("name").between("bar", "foo") )			.addOrder( Order.desc("name") )			.list();		p = (Parent) parents.get(0);		q = (Parent) parents.get(1);		assertFalse( Hibernate.isInitialized( p.getChildren() ) );		assertFalse( Hibernate.isInitialized( q.getChildren() ) );		assertEquals( p.getChildren().size(), 2 );						assertTrue( Hibernate.isInitialized( q.getChildren() ) );				assertEquals( q.getChildren().size(), 2 );				assertFalse( Hibernate.isInitialized( p.getMoreChildren() ) );		assertFalse( Hibernate.isInitialized( q.getMoreChildren() ) );		assertEquals( p.getMoreChildren().size(), 0 );				assertTrue( Hibernate.isInitialized( q.getMoreChildren() ) );			assertEquals( q.getMoreChildren().size(), 2 );				Child c = (Child) p.getChildren().get(0);		c.getFriends().size();		s.delete(p);		s.delete(q);				t.commit();		s.close();	}		protected String[] getMappings() {		return new String[] { "subselectfetch/ParentChild.hbm.xml" };	}	public static Test suite() {		return new TestSuite(SubselectFetchTest.class);	}	public String getCacheConcurrencyStrategy() {		return null;	}}

⌨️ 快捷键说明

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