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

📄 masterdetailtest.java

📁 hibernate 开源框架的代码 jar包希望大家能喜欢
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		s.delete(m);		s.delete( s.load(Master.class, m0id) );		s.flush();		s.connection().commit();		s.close();	}	public void testNamedQuery() throws Exception {		Session s = openSession();		Query q = s.getNamedQuery("all_details");		q.list();		s.connection().commit();		s.close();	}	public void testUpdateLazyCollections() throws Exception {		Session s = openSession();		Master m = new Master();		Serializable mid = s.save(m);		Detail d1 = new Detail();		Detail d2 = new Detail();		d2.setX(14);		d1.setMaster(m);		d2.setMaster(m);		s.save(d1);		s.save(d2);		m.addDetail(d1);		m.addDetail(d2);		s.flush();		s.connection().commit();		s.close();		s = openSession();		m = (Master) s.load(Master.class, mid);		s.connection().commit();		s.close();		m.setName("New Name");		s = openSession();		s.update(m, mid);		Iterator iter = m.getDetails().iterator();		int i=0;		while ( iter.hasNext() ) {			assertTrue( iter.next()!=null );			i++;		}		assertTrue(i==2);		iter = m.getDetails().iterator();		while ( iter.hasNext() ) s.delete( iter.next() );		s.delete(m);		s.flush();		s.connection().commit();		s.close();	}	public void testMultiLevelCascade() throws Exception {		Session s = openSession();		Transaction txn = s.beginTransaction();		Detail detail = new Detail();		SubDetail subdetail = new SubDetail();		Master m = new Master();		Master m0 = new Master();		Serializable m0id = s.save(m0);		m0.addDetail(detail);		detail.setMaster(m0);		m.getMoreDetails().add(detail);		detail.setSubDetails( new HashSet() );		detail.getSubDetails().add(subdetail);		Serializable mid = s.save(m);		txn.commit();		s.close();		s = openSession();		txn = s.beginTransaction();		m = (Master) s.load( Master.class, mid );		assertTrue( ( (Detail) m.getMoreDetails().iterator().next() ).getSubDetails().size()!=0 );		s.delete(m);		assertTrue( s.find("from SubDetail").size()==0 );		assertTrue( s.find("from Detail d").size()==0 );		s.delete( s.load(Master.class, m0id) );		txn.commit();		s.close();	}	public void testMixNativeAssigned() throws Exception {		Session s = openSession();		Category c = new Category();		c.setName("NAME");		Assignable assn = new Assignable();		assn.setId("i.d.");		List l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		s.connection().commit();		s.close();		s = openSession();		s.delete(assn);		s.flush();		s.connection().commit();		s.close();	}	public void testCollectionReplaceOnUpdate() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Category c = new Category();		List list = new ArrayList();		c.setSubcategories(list);		list.add( new Category() );		s.save(c);		t.commit();		s.close();		c.setSubcategories(list);		s = openSession();		t = s.beginTransaction();		s.update(c);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		List list2 = c.getSubcategories();		t.commit();		s.close();		assertTrue( !Hibernate.isInitialized( c.getSubcategories() ) );		c.setSubcategories(list2);		s = openSession();		t = s.beginTransaction();		s.update(c);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		assertTrue( c.getSubcategories().size()==1 );		s.delete(c);		t.commit();		s.close();	}	public void testCollectionReplace2() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Category c = new Category();		List list = new ArrayList();		c.setSubcategories(list);		list.add( new Category() );		Category c2 = new Category();		s.save(c2);		s.save(c);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		List list2 = c.getSubcategories();		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c2 = (Category) s.load( Category.class, new Long( c2.getId() ), LockMode.UPGRADE );		c2.setSubcategories(list2);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c2 = (Category) s.load( Category.class, new Long( c2.getId() ), LockMode.UPGRADE );		assertTrue( c2.getSubcategories().size()==1 );		s.delete(c2);		s.delete( s.load( Category.class, new Long( c.getId() ) ) );		t.commit();		s.close();	}	public void testCollectionReplace() throws Exception {		Session s = openSession();		Transaction t = s.beginTransaction();		Category c = new Category();		List list = new ArrayList();		c.setSubcategories(list);		list.add( new Category() );		s.save(c);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		c.setSubcategories(list);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		List list2 = c.getSubcategories();		t.commit();		s.close();		assertTrue( !Hibernate.isInitialized( c.getSubcategories() ) );		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		c.setSubcategories(list2);		t.commit();		s.close();		s = openSession();		t = s.beginTransaction();		c = (Category) s.load( Category.class, new Long( c.getId() ), LockMode.UPGRADE );		assertTrue( c.getSubcategories().size()==1 );		s.delete(c);		t.commit();		s.close();	}	public void testCategories() throws Exception {		Session s = openSession();		Category c = new Category();		c.setName(Category.ROOT_CATEGORY);		Category c1 = new Category();		Category c2 = new Category();		Category c3 = new Category();		c.getSubcategories().add(c1);		c.getSubcategories().add(c2);		c2.getSubcategories().add(null);		c2.getSubcategories().add(c3);		s.save(c);		s.flush();		s.connection().commit();		s.close();		s = openSession();		Transaction tx = s.beginTransaction();		s.lock(c, LockMode.UPGRADE);		Category loaded = (Category) s.load( Category.class, new Long( c3.getId() ) );		assertTrue( s.contains(c3) );		assertTrue(loaded==c3);		assertTrue( s.getCurrentLockMode(c3)==LockMode.NONE );		assertTrue( s.getCurrentLockMode(c)==LockMode.UPGRADE );		s.flush();		tx.commit();		s.close();		s = openSession();		loaded = (Category) s.load( Category.class, new Long( c.getId() ) );		assertFalse( Hibernate.isInitialized( loaded.getSubcategories() ) );		s.connection().commit();		s.close();		s = openSession();		s.lock(loaded, LockMode.NONE);		assertTrue( loaded.getSubcategories().size()==2 );		s.connection().commit();		s.close();		s = openSession();		c = (Category) s.load( Category.class, new Long( c.getId() ) );		System.out.println( c.getSubcategories() );		assertTrue( c.getSubcategories().get(0)!=null && c.getSubcategories().get(1)!=null );		List list = ( (Category) c.getSubcategories().get(1) ).getSubcategories();		assertTrue( list.get(1)!=null && list.get(0)==null );		assertTrue(			s.iterate("from Category c where c.name = org.hibernate.test.legacy.Category.ROOT_CATEGORY").hasNext()		);		s.delete(c);		s.flush();		s.connection().commit();		s.close();	}	public void testCollectionRefresh() throws Exception {		Session s = openSession();		Category c = new Category();		List list = new ArrayList();		c.setSubcategories(list);		list.add( new Category() );		c.setName("root");		Serializable id = s.save(c);		s.flush();		s.connection().commit();		s.close();		s = openSession();		c = (Category) s.load(Category.class, id);		s.refresh(c);		s.flush();		assertTrue( c.getSubcategories().size()==1 );		s.flush();		s.connection().commit();		s.close();		s = openSession();		c = (Category) s.load(Category.class, id);		assertTrue( c.getSubcategories().size()==1 );		s.delete(c);		s.flush();		s.connection().commit();		s.close();	}	public void testCachedCollectionRefresh() throws Exception {		if ( isSerializableIsolationEnforced() ) {			reportSkip( "SERIALIZABLE isolation", "cached collection refreshing" );			return;		}		Session s = openSession();		Category c = new Category();		List list = new ArrayList();		c.setSubcategories(list);		list.add( new Category() );		c.setName("root");		Serializable id = s.save(c);		s.flush();		s.connection().commit();		s.close();		s = openSession();		c = (Category) s.load(Category.class, id);		c.getSubcategories().size(); //force load and cache		s.connection().commit();		s.close();				s = openSession();		if ( (getDialect() instanceof MySQLDialect) ) {			s.connection().setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);		}		c = (Category) s.load(Category.class, id);		c.getSubcategories().size(); //force load		Session ss = openSession();		Category c2 = (Category) ss.load(Category.class, id);		ss.delete( c2.getSubcategories().get(0) );		c2.getSubcategories().clear();		ss.flush();		ss.connection().commit();		ss.close();		s.refresh(c);		assertTrue( c.getSubcategories().size()==0 );		ss = openSession();		c2 = (Category) ss.load(Category.class, id);		c2.getSubcategories().add( new Category() );		c2.getSubcategories().add( new Category() );		ss.flush();		ss.connection().commit();		ss.close();		s.refresh(c);		assertEquals( 2, c.getSubcategories().size() );		s.flush();		s.connection().commit();		s.close();		s = openSession();		c = (Category) s.load(Category.class, id);		assertEquals( 2, c.getSubcategories().size() );		s.delete(c);		s.flush();		s.connection().commit();		s.close();	}	public void testCustomPersister() throws Exception {		Session s = openSession();		Custom c = new Custom();		c.setName( "foo" );		c.id="100";		String id = (String) s.save(c);		assertTrue( c==s.load(Custom.class, id) );		s.flush();		s.close();		s = openSession();		c = (Custom) s.load(Custom.class, id);		assertTrue( c.getName().equals("foo") );		c.setName( "bar" );		s.flush();		s.close();		s = openSession();		c = (Custom) s.load(Custom.class, id);		assertTrue( c.getName().equals("bar") );		s.delete(c);		s.flush();		s.close();		s = openSession();		boolean none = false;		try {			s.load(Custom.class, id);		}		catch (ObjectNotFoundException onfe) {			none=true;		}		assertTrue(none);		s.close();	}	public void testInterface() throws Exception {		Session s = openSession();		Serializable id = s.save( new BasicNameable() );		s.flush();		s.connection().commit();		s.close();		s = openSession();		Nameable n = (Nameable) s.load(Nameable.class, id);		s.delete(n);		s.flush();		s.connection().commit();		s.close();	}	public void testNoUpdateManyToOne() throws Exception {		Session s = openSession();		W w1 = new W();		W w2 = new W();		Z z = new Z();		z.setW(w1);		s.save(z);		s.flush();		z.setW(w2);		s.flush();		s.connection().commit();		s.close();		s = openSession();		s.update(z);		s.flush();		s.delete(z);		s.delete("from W");		s.flush();		s.connection().commit();		s.close();	}	public void testQueuedBagAdds() throws Exception {		Session s = openSession();		Assignable a = new Assignable();		a.setId("foo");		a.setCategories( new ArrayList() );		Category c = new Category();		c.setAssignable(a);		a.getCategories().add(c);		s.save(a);		s.flush();		s.connection().commit();		s.close();		getSessions().evictCollection("org.hibernate.test.legacy.Assignable.categories");		s = openSession();		a = (Assignable) s.get(Assignable.class, "foo");		c = new Category();		c.setAssignable(a);		a.getCategories().add(c);		assertFalse( Hibernate.isInitialized( a.getCategories() ) );		assertTrue( a.getCategories().size()==2 );		s.flush();		s.connection().commit();		s.close();		getSessions().evictCollection("org.hibernate.test.legacy.Assignable.categories");		s = openSession();		a = (Assignable) s.get(Assignable.class, "foo");		c = new Category();		c.setAssignable(a);		a.getCategories().add(c);		assertFalse( Hibernate.isInitialized( a.getCategories() ) );		s.flush();		assertFalse( Hibernate.isInitialized( a.getCategories() ) );		assertTrue( a.getCategories().size()==3 );		s.connection().commit();		s.close();		getSessions().evictCollection("org.hibernate.test.legacy.Assignable.categories");		s = openSession();		a = (Assignable) s.get(Assignable.class, "foo");		assertTrue( a.getCategories().size()==3 );		s.delete(a);		s.flush();		s.connection().commit();		s.close();	}	public void testPolymorphicCriteria() throws Exception {		Session s = openSession();		Transaction txn = s.beginTransaction();		Category f = new Category();		Single b = new Single();		b.setId("asdfa");		b.setString("asdfasdf");		s.save(f);		s.save(b);		List list = s.createCriteria(Object.class).list();		assertTrue( list.size()==2 );		assertTrue( list.contains(f) && list.contains(b) );		s.delete(f);		s.delete(b);		txn.commit();		s.close();	}}

⌨️ 快捷键说明

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