📄 cmttest.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -