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

📄 foobartest.java

📁 用Java实现的23个常用设计模式源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		s.flush();		s.connection().commit();		s.close();			s = openSession();		g = (GlarchProxy) s.load(Glarch.class, id);		assertTrue( g.getDynaBean()==null );		s.delete(g);		s.flush();		s.connection().commit();		s.close();		}		public void testFindByCriteria() throws Exception {		if (getDialect() instanceof DB2Dialect) return;		Session s = openSession();		Foo f = new Foo();		s.save(f);		s.flush();		List list = s.createCriteria(Foo.class)			.add( Expression.eq( "integer", f.getInteger() ) )			.add( Expression.eqProperty("integer", "integer") )			.add( Expression.like( "string", f.getString().toUpperCase() ).ignoreCase() )			.add( Expression.in( "boolean", new Boolean[] { f.getBoolean(), f.getBoolean() } ) )			.setFetchMode("foo", FetchMode.EAGER)			.setFetchMode("baz", FetchMode.LAZY)			.setFetchMode("abstracts", FetchMode.EAGER)			.list();		if ( ! (getDialect() instanceof HSQLDialect) ) assertTrue( list.size()==1 && list.get(0)==f );		list = s.createCriteria(Foo.class).add(				Expression.disjunction()					.add( Expression.eq( "integer", f.getInteger() ) )					.add( Expression.like( "string", f.getString() ) )					.add( Expression.eq( "boolean", f.getBoolean() ) )			)			.add( Expression.isNotNull("boolean") )			.list();		assertTrue( list.size()==1 && list.get(0)==f );		Foo example = new Foo();		example.setString("a STRing");		list = s.createCriteria(Foo.class).add(			Example.create(example)				.excludeZeroes()				.ignoreCase()				.excludeProperty("bool")				.excludeProperty("char")				.excludeProperty("yesno")			)			.list();		assertTrue( "Example API without like did not work correctly, size was " + list.size(), list.size()==1 && list.get(0)==f );		example.setString("rin");				list = s.createCriteria(Foo.class).add(			Example.create(example)				.excludeZeroes()				.enableLike(MatchMode.ANYWHERE)				.excludeProperty("bool")				.excludeProperty("char")				.excludeProperty("yesno")			)			.list();  		assertTrue( "Example API without like did not work correctly, size was " + list.size(), list.size()==1 && list.get(0)==f );				list = s.createCriteria(Foo.class)			.add( Expression.or( 				Expression.and( 					Expression.eq( "integer", f.getInteger() ), 					Expression.like( "string", f.getString() ) 				), 				Expression.eq( "boolean", f.getBoolean() ) 			) )			.list();		assertTrue( list.size()==1 && list.get(0)==f );		list = s.createCriteria(Foo.class)			.setMaxResults(5)			.addOrder( Order.asc("date") )			.list();		assertTrue( list.size()==1 && list.get(0)==f );		list = s.createCriteria(Foo.class).setMaxResults(0).list();		assertTrue( list.size()==0 );		list = s.createCriteria(Foo.class)			.setFirstResult(1)			.addOrder( Order.asc("date") )			.addOrder( Order.desc("string") )			.list();		assertTrue( list.size()==0 );		list = s.createCriteria(Foo.class)			.setFetchMode("component.importantDates", FetchMode.EAGER)			.list();		assertTrue( list.size()==3 );				f.setFoo( new Foo() );		s.save( f.getFoo() );		s.flush();		s.connection().commit();		s.close();				if (getDialect() instanceof HSQLDialect) {			s = openSession();			s.delete("from Foo foo");			s.flush();			s.connection().commit();			s.close();			return;		}				s = openSession();		list = s.createCriteria(Foo.class)			.add( Expression.eq( "integer", f.getInteger() ) )			.add( Expression.like( "string", f.getString() ) )			.add( Expression.in( "boolean", new Boolean[] { f.getBoolean(), f.getBoolean() } ) )			.add( Expression.isNotNull("foo") )			.setFetchMode("foo", FetchMode.EAGER)			.setFetchMode("baz", FetchMode.LAZY)			.setFetchMode("component.glarch", FetchMode.LAZY)			.setFetchMode("foo.baz", FetchMode.LAZY)			.setFetchMode("foo.component.glarch", FetchMode.LAZY)			.list();		f = (Foo) list.get(0);		assertTrue( Hibernate.isInitialized( f.getFoo() ) );		assertTrue( !Hibernate.isInitialized( f.getComponent().getGlarch() ) );				s.save( new Bar() );		list = s.createCriteria(Bar.class)			.list();		assertTrue( list.size()==1 );		assertTrue( s.createCriteria(Foo.class).list().size()==3 );		s.delete( list.get(0) );				s.delete( f.getFoo() );		s.delete(f);		s.flush();		s.connection().commit();		s.close();	}		public void testAfterDelete() throws Exception {		Session s = openSession();		Foo foo = new Foo();		s.save(foo);		s.flush();		s.delete(foo);		s.save(foo);		s.delete(foo);		s.flush();		s.connection().commit();		s.close();		}		public void testCollectionWhere() throws Exception {		Foo foo1 = new Foo();		Foo foo2 = new Foo();		Baz baz = new Baz();		Foo[] arr = new Foo[10];		arr[0] = foo1;		arr[9] = foo2;		Session s = openSession();		s.save(foo1);		s.save(foo2);		baz.setFooArray(arr);		s.save(baz);		s.flush();		s.connection().commit();		s.close();		s = openSession();		baz = (Baz) s.load( Baz.class, baz.getCode() );		assertTrue( baz.getFooArray().length==1 );		assertTrue( s.find("from Baz baz, baz.fooArray foo").size()==1 );		assertTrue( s.find("from Foo foo").size()==2 );		assertTrue( s.filter( baz.getFooArray(), "" ).size()==1 );		//assertTrue( s.delete("from java.lang.Object o")==9 );		s.delete("from Foo foo");		s.delete(baz);		int rows=s.connection().createStatement().executeUpdate(			"delete from fooArray where id_='" + baz.getCode() + "' and i>=8"		);		assertTrue(rows==1);		s.flush();		s.connection().commit();		s.close();	}		public void testComponentParent() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		BarProxy bar = new Bar();		bar.setBarComponent( new FooComponent() );		Baz baz = new Baz();		baz.setComponents( new FooComponent[] { new FooComponent(), new FooComponent() } );		s.save(bar);		s.save(baz);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		bar = (BarProxy) s.load(Bar.class, bar.getKey());		s.load(baz, baz.getCode());		assertTrue( bar.getBarComponent().getParent()==bar );		assertTrue( baz.getComponents()[0].getBaz()==baz && baz.getComponents()[1].getBaz()==baz );		s.delete(baz);		s.delete(bar);		t.commit();		s.close();	}		public void testCollectionCache() throws Exception {		Session s = openSession();		Baz baz = new Baz();		baz.setDefaults();		s.save(baz);		s.flush();		s.connection().commit();		s.close();				s = openSession();		s.load( Baz.class, baz.getCode() );		s.flush();		s.connection().commit();		s.close();		s = openSession();		baz = (Baz) s.load( Baz.class, baz.getCode() );		s.delete(baz);		s.flush();		s.connection().commit();		s.close();	}		public void testAssociationId() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Bar bar = new Bar();		String id = (String) s.save(bar);		MoreStuff more = new MoreStuff();		more.setName("More Stuff");		more.setIntId(12);		more.setStringId("id");		Stuff stuf = new Stuff();		stuf.setMoreStuff(more);		more.setStuffs( new ArrayList() );		more.getStuffs().add(stuf);		stuf.setFoo(bar);		stuf.setId(1234);		stuf.setProperty( TimeZone.getDefault() );		s.save(more);		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();		assertTrue( s.find(			"from s in class Stuff where s.foo.id = ? and s.id.id = ? and s.moreStuff.id.intId = ? and s.moreStuff.id.stringId = ?",			new Object[] { bar, new Long(1234), new Integer(12), "id" },			new Type[] { Hibernate.entity(Foo.class), Hibernate.LONG, Hibernate.INTEGER, Hibernate.STRING }		).size()==1 );		assertTrue( s.find(			"from s in class Stuff where s.foo.id = ? and s.id.id = ? and s.moreStuff.name = ?",			new Object[] { bar, new Long(1234), "More Stuff" },			new Type[] { Hibernate.entity(Foo.class), Hibernate.LONG, Hibernate.STRING }		).size()==1 );		s.find("from s in class Stuff where s.foo.string is not null");		assertTrue(			s.find("from s in class Stuff where s.foo > '0' order by s.foo").size()==1		);		//s.createCriteria(Stuff.class).createCriteria("id.foo").add( Expression.isNull("foo") ).list();		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();		FooProxy foo = (FooProxy) s.load(Foo.class, id);		s.load(more, more);		t.commit();		s.close();				s = openSession();		t = s.beginTransaction();		Stuff stuff = new Stuff();		stuff.setFoo(foo);		stuff.setId(1234);		stuff.setMoreStuff(more);		s.load(stuff, stuff);		assertTrue( stuff.getProperty().equals( TimeZone.getDefault() ) );		assertTrue( stuff.getMoreStuff().getName().equals("More Stuff") );		s.delete("from ms in class MoreStuff");		s.delete("from foo in class Foo");		t.commit();		s.close();	}		public void testCascadeSave() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Baz baz = new Baz();		List list = new ArrayList();		list.add( new Fee() );		list.add( new Fee() );		baz.setFees(list);		s.save(baz);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		baz = (Baz) s.load( Baz.class, baz.getCode() );		assertTrue( baz.getFees().size()==2 );		s.delete(baz);		assertTrue( !s.iterate("from fee in class Fee").hasNext() );		t.commit();		s.close();				}		public void testCollectionsInSelect() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Foo[] foos = new Foo[] { null, new Foo() };		s.save( foos[1] );		Baz baz = new Baz();		baz.setDefaults();		baz.setFooArray(foos);		s.save(baz);		Baz baz2 = new Baz();		baz2.setDefaults();		s.save(baz2);				Bar bar = new Bar();		bar.setBaz(baz);		s.save(bar);				List list = s.find("select new Result(foo.string, foo.long, foo.integer) from foo in class Foo");		assertTrue( list.size()==2 && ( list.get(0) instanceof Result ) && ( list.get(1) instanceof Result ) );		list = s.find("select new Result( baz.name, foo.long, count(elements(baz.fooArray)) ) from Baz baz join baz.fooArray foo group by baz.name, foo.long");		assertTrue( list.size()==1 && ( list.get(0) instanceof Result ) );		Result r = ((Result) list.get(0) );		assertEquals( r.getName(), baz.getName() ); 		assertEquals( r.getCount(), 1 );		assertEquals( r.getAmount(), foos[1].getLong().longValue() );		list = s.find("select new Result( baz.name, max(foo.long), count(foo) ) from Baz baz join baz.fooArray foo group by baz.name");		assertTrue( list.size()==1 && ( list.get(0) instanceof Result ) );		r = ((Result) list.get(0) );		assertEquals( r.getName(), baz.getName() ); 		assertEquals( r.getCount(), 1 );		assertTrue( r.getAmount() > 696969696969696000l );						s.find("select max( elements(bar.baz.fooArray) ) from Bar as bar");		//The following test is disabled for databases with no subselects...also for Interbase (not sure why).		if ( !(getDialect() instanceof MySQLDialect) && !(getDialect() instanceof HSQLDialect) /*&& !(dialect instanceof MckoiDialect)*/ && !(getDialect() instanceof SAPDBDialect) && !(getDialect() instanceof PointbaseDialect) )  {			s.find("select count(*) from Baz as baz where 1 in indices(baz.fooArray)");			s.find("select count(*) from Bar as bar where 'abc' in elements(bar.baz.fooArray)");			s.find("select count(*) from Bar as bar where 1 in indices(bar.baz.fooArray)");			if ( !(getDialect() instanceof DB2Dialect) ) {				s.find("select count(*) from Bar as bar, bar.component.glarch.proxyArray as g where g.id in indices(bar.baz.fooArray)");				s.find("select max( elements(bar.baz.fooArray) ) from Bar as bar, bar.component.glarch.proxyArray as g where g.id in indices(bar.baz.fooArray)");			}			s.find("select count(*) from Bar as bar where '1' in (from bar.component.glarch.proxyArray g where g.name='foo')");			s.find("select count(*) from Bar as bar where '1' in (from g in bar.component.glarch.proxyArray.elements where g.name='foo')");			s.find("select count(*) from Bar as bar left outer join bar.component.glarch.proxyArray as pg where '1' in (from g in bar.component.glarch.proxyArray)");		}		list = s.find("from Baz baz left join baz.fooToGlarch join fetch baz.fooArray foo left join fetch foo.foo");		assertTrue( list.size()==1 && ( (Object[]) list.get(0) ).length==2 );				s.find("select baz.name from Bar bar inner join bar.baz baz inner join baz.fooSet foo where baz.name = bar.string");		s.find("SELECT baz.name FROM Bar AS bar INNER JOIN bar.baz AS baz INNER JOIN baz.fooSet AS foo WHERE baz.name = bar.string");				s.find("select baz.name from Bar bar join bar.baz baz left outer join baz.fooSet foo where baz.name = bar.string");				s.find("select baz.name from Bar bar, bar.baz baz, baz.fooSet foo where baz.name = bar.string");		s.find("SELECT baz.name FROM Bar AS bar, bar.baz AS baz, baz.fooSet AS foo WHERE baz.name = bar.string");				s.find("select baz.name from Bar bar left join bar.baz baz left join baz.fooSet foo where baz.name = bar.string");		s.find("select foo.string from Bar bar left join bar.baz.fooSet foo where bar.string = foo.string");				s.find("select baz.name from Bar bar left join bar.baz baz left join baz.fooArray foo where baz.name = bar.string");		s.find("select foo.string from Bar bar left join bar.baz.fooArray foo where bar.string = foo.string");				s.find("select bar.string, foo.string from bar in class Bar inner join bar.baz as baz inner join elements(baz.fooSet) as foo where baz.name = 'name'");		s.find("select foo from bar in class Bar inner join bar.baz as baz inner join baz.fooSet as foo");		s.find("select foo from bar in class Bar inner join bar.baz.fooSet as foo");				s.find("select bar.string, foo.string from bar in class Bar, bar.baz as baz, elements(baz.fooSet) as foo where baz.name = 'name'");		s.find("select foo from bar in

⌨️ 快捷键说明

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