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

📄 foobartest.java

📁 人力资源管理系统主要包括:人员管理、招聘管理、培训管理、奖惩管理和薪金管理五大管理模块。
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
//$Id: FooBarTest.java,v 1.1.2.23 2004/02/04 20:08:54 oneovthafew Exp $package org.hibernate.test;import java.io.Serializable;import java.sql.Connection;import java.sql.Time;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Date;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Locale;import java.util.Set;import java.util.SortedSet;import java.util.TimeZone;import java.util.TreeMap;import java.util.TreeSet;import junit.framework.Test;import junit.framework.TestSuite;import junit.textui.TestRunner;import net.sf.hibernate.Criteria;import net.sf.hibernate.Databinder;import net.sf.hibernate.FetchMode;import net.sf.hibernate.FlushMode;import net.sf.hibernate.Hibernate;import net.sf.hibernate.HibernateException;import net.sf.hibernate.LazyInitializationException;import net.sf.hibernate.LockMode;import net.sf.hibernate.ObjectDeletedException;import net.sf.hibernate.ObjectNotFoundException;import net.sf.hibernate.Query;import net.sf.hibernate.QueryException;import net.sf.hibernate.ScrollableResults;import net.sf.hibernate.Session;import net.sf.hibernate.Transaction;import net.sf.hibernate.cfg.Environment;import net.sf.hibernate.connection.ConnectionProvider;import net.sf.hibernate.connection.DriverManagerConnectionProvider;import net.sf.hibernate.dialect.DB2Dialect;import net.sf.hibernate.dialect.HSQLDialect;import net.sf.hibernate.dialect.InterbaseDialect;import net.sf.hibernate.dialect.MckoiDialect;import net.sf.hibernate.dialect.MySQLDialect;import net.sf.hibernate.dialect.Oracle9Dialect;import net.sf.hibernate.dialect.OracleDialect;import net.sf.hibernate.dialect.PointbaseDialect;import net.sf.hibernate.dialect.PostgreSQLDialect;import net.sf.hibernate.dialect.SAPDBDialect;import net.sf.hibernate.dialect.SQLServerDialect;import net.sf.hibernate.dialect.SybaseDialect;import net.sf.hibernate.engine.SessionFactoryImplementor;import net.sf.hibernate.expression.Example;import net.sf.hibernate.expression.Expression;import net.sf.hibernate.expression.MatchMode;import net.sf.hibernate.expression.Order;import net.sf.hibernate.jmx.HibernateService;import net.sf.hibernate.proxy.HibernateProxy;import net.sf.hibernate.type.Type;import net.sf.hibernate.util.JoinedIterator;import net.sf.hibernate.util.SerializationHelper;public class FooBarTest extends TestCase {		public FooBarTest(String arg) {		super(arg);	}		public void testForCertain() throws Exception {		Glarch g = new Glarch();		Glarch g2 = new Glarch();		List set = new ArrayList();		set.add("foo");		g2.setStrings(set);		Session s = openSession();		Transaction t = s.beginTransaction();		Serializable gid = (Serializable) s.save(g);		Serializable g2id = (Serializable) s.save(g2);		t.commit();		assertTrue( g.getVersion()==0 );		assertTrue( g2.getVersion()==0 );		s.close();				s = openSession();		t = s.beginTransaction();		g = (Glarch) s.get(Glarch.class, gid);		g2 = (Glarch) s.get(Glarch.class, g2id);		assertTrue( g2.getStrings().size()==1 );		s.delete(g);		s.delete(g2);		t.commit();		s.close();			}		public void testBagMultipleElements() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Baz baz = new Baz();		baz.setBag( new ArrayList() );		baz.setByteBag( new ArrayList() );		s.save(baz);		baz.getBag().add("foo");		baz.getBag().add("bar");		baz.getByteBag().add( "foo".getBytes() );		baz.getByteBag().add( "bar".getBytes() );		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();		//put in cache		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertTrue( baz.getBag().size()==2 );		assertTrue( baz.getByteBag().size()==2 );		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertTrue( baz.getBag().size()==2 );		assertTrue( baz.getByteBag().size()==2 );		baz.getBag().remove("bar");		baz.getBag().add("foo");		baz.getByteBag().add( "bar".getBytes() );		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertTrue( baz.getBag().size()==2 );		assertTrue( baz.getByteBag().size()==3 );		s.delete(baz);		t.commit();		s.close();	}		public void testWierdSession() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Serializable id =  s.save( new Foo() );		t.commit();		s.close();				s = openSession();		s.setFlushMode(FlushMode.NEVER);		t = s.beginTransaction();		Foo foo = (Foo) s.get(Foo.class, id);		t.commit();		s.disconnect();		s.reconnect();		t = s.beginTransaction();		s.flush();		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();		foo = (Foo) s.get(Foo.class, id);		s.delete(foo);		t.commit();		s.close();	}		public void testDereferenceLazyCollection() throws Exception {		Session s = openSession();		Baz baz = new Baz();		baz.setFooSet( new HashSet() );		Foo foo = new Foo();		baz.getFooSet().add(foo);		s.save(foo);		s.save(baz);		foo.setBytes( "foobar".getBytes() );		s.flush();		s.connection().commit();		s.close();				s = openSession();		foo = (Foo) s.get( Foo.class, foo.getKey() );		assertTrue( Hibernate.isInitialized( foo.getBytes() ) );		assertTrue( foo.getBytes().length==6 );		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertTrue( baz.getFooSet().size()==1 );		s.flush();		s.connection().commit();		s.close();				getSessions().evictCollection("org.hibernate.test.Baz.fooSet");		s = openSession();		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertFalse( Hibernate.isInitialized( baz.getFooSet() ) );		baz.setFooSet(null);		s.flush();		s.connection().commit();		s.close();		s = openSession();		foo = (Foo) s.get( Foo.class, foo.getKey() );		assertTrue( foo.getBytes().length==6 );		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertFalse( Hibernate.isInitialized( baz.getFooSet() ) );		assertTrue( baz.getFooSet().size()==0 );		s.delete(baz);		s.delete(foo);		s.flush();		s.connection().commit();		s.close();	}		public void testMoveLazyCollection() throws Exception {		Session s = openSession();		Baz baz = new Baz();		Baz baz2 = new Baz();		baz.setFooSet( new HashSet() );		Foo foo = new Foo();		baz.getFooSet().add(foo);		s.save(foo);		s.save(baz);		s.save(baz2);		foo.setBytes( "foobar".getBytes() );		s.flush();		s.connection().commit();		s.close();				s = openSession();		foo = (Foo) s.get( Foo.class, foo.getKey() );		assertTrue( Hibernate.isInitialized( foo.getBytes() ) );		assertTrue( foo.getBytes().length==6 );		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertTrue( baz.getFooSet().size()==1 );		s.flush();		s.connection().commit();		s.close();				getSessions().evictCollection("org.hibernate.test.Baz.fooSet");		s = openSession();		baz = (Baz) s.get( Baz.class, baz.getCode() );		assertFalse( Hibernate.isInitialized( baz.getFooSet() ) );		baz2 = (Baz) s.get( Baz.class, baz2.getCode() );		baz2.setFooSet( baz.getFooSet() );		baz.setFooSet(null);		assertFalse( Hibernate.isInitialized( baz2.getFooSet() ) );		s.flush();		s.connection().commit();		s.close();		s = openSession();		foo = (Foo) s.get( Foo.class, foo.getKey() );		assertTrue( foo.getBytes().length==6 );		baz = (Baz) s.get( Baz.class, baz.getCode() );		baz2 = (Baz) s.get( Baz.class, baz2.getCode() );		assertFalse( Hibernate.isInitialized( baz.getFooSet() ) );		assertTrue( baz.getFooSet().size()==0 );		assertTrue( Hibernate.isInitialized( baz2.getFooSet() ) ); //fooSet has batching enabled		assertTrue( baz2.getFooSet().size()==1 );		s.delete(baz);		s.delete(baz2);		s.delete(foo);		s.flush();		s.connection().commit();		s.close();	}		public void testCriteriaCollection() throws Exception {		Session s = openSession();		Baz bb = (Baz) s.createCriteria(Baz.class).uniqueResult();		Baz baz = new Baz();		s.save(baz);		s.flush();		s.connection().commit();		s.close();		s = openSession();		Baz b = (Baz) s.createCriteria(Baz.class).uniqueResult();		assertTrue( Hibernate.isInitialized( b.getTopGlarchez() ) );		assertTrue( b.getTopGlarchez().size()==0 );		s.delete(b);		s.flush();		s.connection().commit();		s.close();	}		public void testQuery() throws Exception {		Session s = openSession();		Foo foo = new Foo();		s.save(foo);		Foo foo2 = new Foo();		s.save(foo2);		foo.setFoo(foo2);				List list = s.find("from Foo foo inner join fetch foo.foo");		Foo foof = (Foo) list.get(0);		assertTrue( Hibernate.isInitialized( foof.getFoo() ) );				list = s.find("from Baz baz left outer join fetch baz.fooToGlarch");				list = s.find(			"select foo, bar from Foo foo left outer join foo.foo bar where foo = ?", 			foo, 			Hibernate.entity(Foo.class) 		);		Object[] row1 = (Object[]) list.get(0);		assertTrue( row1[0]==foo && row1[1]==foo2 );				s.find("select foo.foo.foo.string from foo in class Foo where foo.foo = 'bar'");		s.find("select foo.foo.foo.foo.string from foo in class Foo where foo.foo.foo = 'bar'");		s.find("select foo.foo.foo.string from foo in class Foo where foo.foo.foo.foo.string = 'bar'");		if ( ! (getDialect() instanceof HSQLDialect) ) s.find("select foo.string from foo in class Foo where foo.foo.foo.foo = foo.foo.foo");		s.find("select foo.string from foo in class Foo where foo.foo.foo = 'bar' and foo.foo.foo.foo = 'baz'");		s.find("select foo.string from foo in class Foo where foo.foo.foo.foo.string = 'a' and foo.foo.string = 'b'");				s.find("from bar in class Bar, foo in elements(bar.baz.fooArray)");				//s.find("from Baz as baz where baz.topComponents[baz].name = 'bazzz'");			if (getDialect() instanceof DB2Dialect) {			s.find("from foo in class Foo where lower( foo.foo.string ) = 'foo'");			s.find("from foo in class Foo where lower( (foo.foo.string || 'foo') || 'bar' ) = 'foo'");			s.find("from foo in class Foo where repeat( (foo.foo.string || 'foo') || 'bar', 2 ) = 'foo'");			s.find("from foo in class Bar where foo.foo.integer is not null and repeat( (foo.foo.string || 'foo') || 'bar', (5+5)/2 ) = 'foo'");			s.find("from foo in class Bar where foo.foo.integer is not null or repeat( (foo.foo.string || 'foo') || 'bar', (5+5)/2 ) = 'foo'");		}		if (getDialect() instanceof SybaseDialect) {			s.iterate("select baz from Baz as baz join baz.fooArray foo group by baz order by sum(foo.float)");		}				s.find("from Foo as foo where foo.component.glarch.name is not null");		s.find("from Foo as foo left outer join foo.component.glarch as glarch where glarch.name = 'foo'");				list = s.find("from Foo");		assertTrue( list.size()==2 && list.get(0) instanceof FooProxy );		list = s.find("from Foo foo left outer join foo.foo");		assertTrue( list.size()==2 && ( (Object[]) list.get(0) )[0] instanceof FooProxy );				s.find("from Foo, Bar");		s.find("from Baz baz left join baz.fooToGlarch, Bar bar join bar.foo");		s.find("from Baz baz left join baz.fooToGlarch join baz.fooSet");		s.find("from Baz baz left join baz.fooToGlarch join fetch baz.fooSet foo left join fetch foo.foo");				/*Query q = s.createQuery("from foo in class Foo where foo.string = ? or foo.string = ? or foo.string in (:list)");		q.setString(0, "foo");		q.setString(1, "bar");		List plist = new ArrayList();		plist.add("baz");		q.setParameterList("list", plist);		q.list();*/				list = s.find("from foo in class Foo where foo.string='osama bin laden' and foo.boolean = true order by foo.string asc, foo.component.count desc");		assertTrue( "empty query", list.size()==0 );		Iterator iter = s.iterate("from foo in class Foo where foo.string='osama bin laden' order by foo.string asc, foo.component.count desc");		assertTrue( "empty iterator", !iter.hasNext() );				list = s.find("select foo.foo from foo in class Foo");		assertTrue( "query", list.size()==1 );		assertTrue( "returned object", list.get(0)==foo.getFoo() );		foo.getFoo().setFoo(foo);		foo.setString("fizard");		//The following test is disabled for databases with no subselects...also for Interbase (not sure why).		if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof HSQLDialect) && !(getDialect() instanceof MckoiDialect) && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof PointbaseDialect) )  {			// && !db.equals("weblogic") {			if ( !( getDialect() instanceof InterbaseDialect ) ) {				list = s.find("from foo in class Foo where ? = some foo.component.importantDates.elements", new Date(), Hibernate.DATE);				assertTrue( "component query", list.size()==2 );			}			list = s.find("from foo in class Foo where size(foo.component.importantDates) = 3"); //WAS: 4			assertTrue( "component query", list.size()==2 );			list = s.find("from foo in class Foo where 0 = size(foo.component.importantDates)");			assertTrue( "component query", list.size()==0 );			list = s.find("from foo in class Foo where exists elements(foo.component.importantDates)");			assertTrue( "component query", list.size()==2 );			s.find("from foo in class Foo where not exists (from bar in class Bar where bar.id = foo.id)");						s.find("select foo.foo from foo in class Foo where foo = some(select x from x in class Foo where x.long > foo.foo.long)");			s.find("select foo.foo from foo in class Foo where foo = some(from Foo x where (x.long > foo.foo.long))");			s.find("select foo.foo from foo in class Foo where foo.long = some( select max(x.long) from Foo x where (x.long > foo.foo.long) group by x.foo )");			s.find("from Foo foo where foo = some(select x from x in class Foo where x.long > foo.foo.long) and foo.foo.string='baz'");			s.find("from Foo foo where foo.foo.string='baz' and foo = some(select x from Foo x where x.long > foo.foo.long)");			s.find("from Foo foo where foo = some(select x from x in class Foo where x.long > foo.foo.long)");			s.iterate("select foo.string, foo.date, foo.foo.string, foo.id from foo in class Foo, baz in class Baz where foo in elements(baz.fooArray) and foo.string like 'foo'");		}		list = s.find("from foo in class Foo where foo.component.count is null order by foo.component.count");		assertTrue( "component query", list.size()==0 );		list = s.find("from foo in class Foo where foo.component.name='foo'");		assertTrue( "component query", list.size()==2 );		list = s.find("select distinct foo.component.name, foo.component.name from foo in class Foo where foo.component.name='foo'");		assertTrue( "component query", list.size()==1 );		list = s.find("select distinct foo.component.name, foo.id from foo in class Foo where foo.component.name='foo'");		assertTrue( "component query", list.size()==2 );		list = s.find("select foo.foo from foo in class Foo");		assertTrue( "query", list.size()==2 );		list = s.find("from foo in class Foo where foo.id=?", foo.getKey(), Hibernate.STRING);		assertTrue( "id query", list.size()==1 );		list = s.find("from foo in class Foo where foo.key=?", foo.getKey(), Hibernate.STRING);		assertTrue( "named id query", list.size()==1 );		assertTrue( "id query", list.get(0)==foo );		list = s.find("select foo.foo from foo in class Foo where foo.string='fizard'");		assertTrue( "query", list.size()==1 );

⌨️ 快捷键说明

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