private void assertTimeoutOccursOnScroll() { FullTextQuery hibernateQuery = fts.createFullTextQuery( noMatchQuery, Clock.class ); hibernateQuery.setTimeout( 10, TimeUnit.MICROSECONDS ); try { hibernateQuery.scroll(); fail( "timeout exception should happen" ); } catch (QueryTimeoutException e) { //good } catch (Exception e) { fail( "Expected a QueryTimeoutException" ); } fts.clear(); }
@Test public void testScrollEmptyHits() throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( openSession() ); Transaction tx = fullTextSession.beginTransaction(); QueryParser parser = new QueryParser( "dept", TestConstants.standardAnalyzer ); Query query = parser.parse( "dept:XXX" ); org.hibernate.search.FullTextQuery hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ); ScrollableResults projections = hibQuery.scroll(); projections.beforeFirst(); projections.next(); Object[] projection = projections.get(); assertNull( projection ); hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ).setFirstResult( 10 ).setMaxResults( 20 ); projections = hibQuery.scroll(); projections.beforeFirst(); projections.next(); projection = projections.get(); assertNull( projection ); tx.commit(); fullTextSession.close(); }
.setSort( sort ) .setFetchSize( 10 ) .scroll(); scrollableResults.beforeFirst();
@Test public void testDefaultFetchSize() throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( openSession() ); Transaction tx = fullTextSession.beginTransaction(); QueryParser parser = new QueryParser( "dept", TestConstants.standardAnalyzer ); Query query = parser.parse( "dept:ITech" ); org.hibernate.search.FullTextQuery hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ); hibQuery.setProjection( "id", "lastname", "dept" ); ScrollableResults projections = hibQuery.scroll(); projections.beforeFirst(); Object[] projection = projections.get(); assertNull( projection ); projections.next(); assertTrue( projections.isFirst() ); tx.commit(); fullTextSession.close(); }
@Test public void testFetchSizeNonDefaultFirstAndMaxNoHits() throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( openSession() ); Transaction tx = fullTextSession.beginTransaction(); QueryParser parser = new QueryParser( "dept", TestConstants.standardAnalyzer ); Query query = parser.parse( "dept:XXX" ); org.hibernate.search.FullTextQuery hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ); hibQuery.setProjection( "id", "lastname", "dept" ); hibQuery.setFetchSize( 3 ); hibQuery.setFirstResult( 1 ); hibQuery.setMaxResults( 3 ); ScrollableResults results = hibQuery.scroll(); results.beforeFirst(); Object[] result = results.get(); assertNull( "non-null entity infos returned", result ); tx.commit(); fullTextSession.close(); }
.setFirstResult( 20 ) .setMaxResults( 111 ) .scroll(); assertEquals( -1, scrollableResults.getRowNumber() ); assertTrue( scrollableResults.last() );
ScrollableResults projections = hibQuery.scroll(); assertNotNull( projections );
@Test public void testFetchSizeLargerThanHits() throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( openSession() ); Transaction tx = fullTextSession.beginTransaction(); QueryParser parser = new QueryParser( "dept", TestConstants.standardAnalyzer ); Query query = parser.parse( "dept:ITech" ); org.hibernate.search.FullTextQuery hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ); hibQuery.setSort( new Sort( new SortField( "id", SortField.Type.STRING ) ) ); hibQuery.setProjection( "id", "lastname", "dept" ); hibQuery.setFetchSize( 6 ); ScrollableResults results = hibQuery.scroll(); results.beforeFirst(); results.next(); Object[] result = results.get(); assertEquals( "incorrect entityInfo returned", 1000, result[0] ); tx.commit(); fullTextSession.close(); }
.setSort( sort ) .setFetchSize( 10 ) .scroll(); int position = -1; while ( scrollableResults.next() ) {
.scroll(); scrollableResults.last(); assertEquals( 132, scrollableResults.getRowNumber() );
@Test public void testFetchSizeDefaultFirstAndMax() throws Exception { FullTextSession fullTextSession = Search.getFullTextSession( openSession() ); Transaction tx = fullTextSession.beginTransaction(); QueryParser parser = new QueryParser( "dept", TestConstants.standardAnalyzer ); Query query = parser.parse( "dept:ITech" ); org.hibernate.search.FullTextQuery hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ); hibQuery.setSort( new Sort( new SortField( "id", SortField.Type.STRING ) ) ); hibQuery.setProjection( "id", "lastname", "dept" ); hibQuery.setFetchSize( 3 ); ScrollableResults results = hibQuery.scroll(); results.beforeFirst(); results.next(); Object[] result = results.get(); assertEquals( "incorrect entityInfo returned", 1000, result[0] ); results.scroll( 2 ); result = results.get(); assertEquals( "incorrect entityInfo returned", 1003, result[0] ); // check cache addition results.next(); result = results.get(); assertEquals( "incorrect entityInfo returned", 1004, result[0] ); results.scroll( -2 ); result = results.get(); assertEquals( "incorrect entityInfo returned", 1002, result[0] ); tx.commit(); fullTextSession.close(); }
hibQuery.setSort( new Sort( new SortField( "id", SortField.Type.STRING ) ) ); ScrollableResults results = hibQuery.scroll(); results.beforeFirst(); results.next();
); ScrollableResults projections = hibQuery.scroll();