cmttest.java

来自「hibernate 开源框架的代码 jar包希望大家能喜欢」· Java 代码 · 共 513 行 · 第 1/2 页

JAVA
513
字号
		assertEquals( getSessions().getStatistics().getSecondLevelCacheHitCount(), 0 );		assertEquals( getSessions().getStatistics().getSecondLevelCacheMissCount(), 0 );		assertEquals( getSessions().getStatistics().getEntityLoadCount(), 4 );		assertEquals( getSessions().getStatistics().getEntityFetchCount(), 0 );		assertEquals( getSessions().getStatistics().getQueryExecutionCount(), 2 );		assertEquals( getSessions().getStatistics().getQueryCachePutCount(), 2 );		assertEquals( getSessions().getStatistics().getQueryCacheHitCount(), 0 );		assertEquals( getSessions().getStatistics().getQueryCacheMissCount(), 2 );		SimpleJtaTransactionManagerImpl.getInstance().resume( tx1 );		tx1.commit();		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s3 = openSession();		s3.createCriteria( "Item" ).addOrder( Order.asc( "description" ) )				.setCacheable( true ).list();		SimpleJtaTransactionManagerImpl.getInstance().commit();		assertEquals( getSessions().getStatistics().getSecondLevelCacheHitCount(), 0 );		assertEquals( getSessions().getStatistics().getSecondLevelCacheMissCount(), 0 );		assertEquals( getSessions().getStatistics().getEntityLoadCount(), 6 );		assertEquals( getSessions().getStatistics().getEntityFetchCount(), 0 );		assertEquals( getSessions().getStatistics().getQueryExecutionCount(), 3 );		assertEquals( getSessions().getStatistics().getQueryCachePutCount(), 3 );		assertEquals( getSessions().getStatistics().getQueryCacheHitCount(), 0 );		assertEquals( getSessions().getStatistics().getQueryCacheMissCount(), 3 );		SimpleJtaTransactionManagerImpl.getInstance().resume( tx4 );		List r4 = s4.createCriteria( "Item" ).addOrder( Order.asc( "description" ) )				.setCacheable( true ).list();		assertEquals( r4.size(), 2 );		tx4.commit();		assertEquals( getSessions().getStatistics().getSecondLevelCacheHitCount(), 2 );		assertEquals( getSessions().getStatistics().getSecondLevelCacheMissCount(), 0 );		assertEquals( getSessions().getStatistics().getEntityLoadCount(), 6 );		assertEquals( getSessions().getStatistics().getEntityFetchCount(), 0 );		assertEquals( getSessions().getStatistics().getQueryExecutionCount(), 3 );		assertEquals( getSessions().getStatistics().getQueryCachePutCount(), 3 );		assertEquals( getSessions().getStatistics().getQueryCacheHitCount(), 1 );		assertEquals( getSessions().getStatistics().getQueryCacheMissCount(), 3 );		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = openSession();		s.createQuery( "delete from Item" ).executeUpdate();		SimpleJtaTransactionManagerImpl.getInstance().commit();	}	public void testCMT() throws Exception {		getSessions().getStatistics().clear();		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s = openSession();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		assertFalse( s.isOpen() );		assertEquals( getSessions().getStatistics().getFlushCount(), 0 );		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = openSession();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().rollback();		assertFalse( s.isOpen() );		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = openSession();		Map item = new HashMap();		item.put( "name", "The Item" );		item.put( "description", "The only item we have" );		s.persist( "Item", item );		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		assertFalse( s.isOpen() );		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = openSession();		item = ( Map ) s.createQuery( "from Item" ).uniqueResult();		assertNotNull( item );		s.delete( item );		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		assertFalse( s.isOpen() );		assertEquals( getSessions().getStatistics().getTransactionCount(), 4 );		assertEquals( getSessions().getStatistics().getSuccessfulTransactionCount(), 3 );		assertEquals( getSessions().getStatistics().getEntityDeleteCount(), 1 );		assertEquals( getSessions().getStatistics().getEntityInsertCount(), 1 );		assertEquals( getSessions().getStatistics().getSessionOpenCount(), 4 );		assertEquals( getSessions().getStatistics().getSessionCloseCount(), 4 );		assertEquals( getSessions().getStatistics().getQueryExecutionCount(), 1 );		assertEquals( getSessions().getStatistics().getFlushCount(), 2 );		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = openSession();		s.createQuery( "delete from Item" ).executeUpdate();		SimpleJtaTransactionManagerImpl.getInstance().commit();	}	public void testCurrentSession() throws Exception {		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s = getSessions().getCurrentSession();		Session s2 = getSessions().getCurrentSession();		assertSame( s, s2 );		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		assertFalse( s.isOpen() );		// TODO : would be nice to automate-test that the SF internal map actually gets cleaned up		//      i verified that is does currently in my debugger...	}	public void testCurrentSessionWithIterate() throws Exception {		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s = openSession();		Map item1 = new HashMap();		item1.put( "name", "Item - 1" );		item1.put( "description", "The first item" );		s.persist( "Item", item1 );		Map item2 = new HashMap();		item2.put( "name", "Item - 2" );		item2.put( "description", "The second item" );		s.persist( "Item", item2 );		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		// First, test iterating the partial iterator; iterate to past		// the first, but not the second, item		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		Iterator itr = s.createQuery( "from Item" ).iterate();		if ( !itr.hasNext() ) {			fail( "No results in iterator" );		}		itr.next();		if ( !itr.hasNext() ) {			fail( "Only one result in iterator" );		}		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		// Next, iterate the entire result		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		itr = s.createQuery( "from Item" ).iterate();		if ( !itr.hasNext() ) {			fail( "No results in iterator" );		}		while ( itr.hasNext() ) {			itr.next();		}		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = openSession();		s.createQuery( "delete from Item" ).executeUpdate();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();	}	public void testCurrentSessionWithScroll() throws Exception {		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s = getSessions().getCurrentSession();		Map item1 = new HashMap();		item1.put( "name", "Item - 1" );		item1.put( "description", "The first item" );		s.persist( "Item", item1 );		Map item2 = new HashMap();		item2.put( "name", "Item - 2" );		item2.put( "description", "The second item" );		s.persist( "Item", item2 );		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		// First, test partially scrolling the result with out closing		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		ScrollableResults results = s.createQuery( "from Item" ).scroll();		results.next();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		// Next, test partially scrolling the result with closing		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		results = s.createQuery( "from Item" ).scroll();		results.next();		results.close();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		// Next, scroll the entire result (w/o closing)		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		results = s.createQuery( "from Item" ).scroll();		while ( !results.isLast() ) {			results.next();		}		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		// Next, scroll the entire result (closing)		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		results = s.createQuery( "from Item" ).scroll();		while ( !results.isLast() ) {			results.next();		}		results.close();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		SimpleJtaTransactionManagerImpl.getInstance().begin();		s = getSessions().getCurrentSession();		s.createQuery( "delete from Item" ).executeUpdate();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();	}	public void testAggressiveReleaseWithExplicitDisconnectReconnect() throws Exception {		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s = getSessions().getCurrentSession();		s.createQuery( "from Item" ).list();		s.disconnect();		byte[] bytes = SerializationHelper.serialize( s );		s = ( Session ) SerializationHelper.deserialize( bytes );		s.reconnect();		s.createQuery( "from Item" ).list();		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();	}	public void testAggressiveReleaseWithConnectionRetreival() throws Exception {		SimpleJtaTransactionManagerImpl.getInstance().begin();		Session s = openSession();		Map item1 = new HashMap();		item1.put( "name", "Item - 1" );		item1.put( "description", "The first item" );		s.save( "Item", item1 );		Map item2 = new HashMap();		item2.put( "name", "Item - 2" );		item2.put( "description", "The second item" );		s.save( "Item", item2 );		SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		try {			SimpleJtaTransactionManagerImpl.getInstance().begin();			s = getSessions().getCurrentSession();			s.createQuery( "from Item" ).scroll().next();			s.connection();			SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		}		finally {			SimpleJtaTransactionManagerImpl.getInstance().begin();			s = openSession();			s.createQuery( "delete from Item" ).executeUpdate();			SimpleJtaTransactionManagerImpl.getInstance().getTransaction().commit();		}	}}

⌨️ 快捷键说明

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