@Override @SuppressWarnings("unchecked") public CloseableIterator<T> iterate() { return new IteratorAdapter<T>(createQuery(false).iterate()); }
@Test public void testIterateEmptyHits() 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 ); Iterator iter = hibQuery.iterate(); assertFalse( iter.hasNext() ); hibQuery = fullTextSession.createFullTextQuery( query, Employee.class ).setFirstResult( 10 ).setMaxResults( 20 ); iter = hibQuery.iterate(); assertFalse( iter.hasNext() ); tx.commit(); fullTextSession.close(); }
private void assertTimeoutOccursOnIterate() { FullTextQuery hibernateQuery = fts.createFullTextQuery( allSwatchClocksQuery, Clock.class ); hibernateQuery.setTimeout( 10, TimeUnit.MICROSECONDS ); try { hibernateQuery.iterate(); fail( "timeout exception should happen" ); } catch (QueryTimeoutException e) { //good } catch (Exception e) { fail( "Expected a QueryTimeoutException" ); } fts.clear(); }
@Test @SuppressWarnings("deprecation") @TestForIssue(jiraKey = "HSEARCH-2631") public void objectLoading_singleClassQueryLoader_criteria_iterate() { Session s = openSession(); try { Transaction tx = s.beginTransaction(); A entity = new A(); entity.id = 1L; s.persist( entity ); tx.commit(); FullTextSession session = Search.getFullTextSession( s ); FullTextQuery query = session.createFullTextQuery( matchAll() ) .setCriteriaQuery( session.createCriteria( A.class ) ); assertEquals( 0, getStatistics().getObjectsLoadedCount() ); Iterator<?> iterator = query.iterate(); iterator.next(); assertEquals( 1, getStatistics().getObjectsLoadedCount() ); query = session.createFullTextQuery( matchAll(), A.class ); iterator = query.iterate(); iterator.next(); assertEquals( 2, getStatistics().getObjectsLoadedCount() ); } finally { s.close(); } }
@Test public void twoClasses_singleResult() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); FullTextSession fullTextSession = Search.getFullTextSession( session ); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( fieldBarQuery, A.class, B.class ); List<?> result = fullTextQuery.list(); assertEquals( "Should match a single A only", 1, result.size() ); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldBarQuery, A.class, B.class ) .setProjection( ProjectionConstants.THIS ); result = fullTextQuery.list(); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldBarQuery, A.class, B.class ); assertPopulated( fullTextQuery.iterate() ); tx.commit(); fullTextSession.close(); }
@Test public void twoClasses_multipleResults() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); FullTextSession fullTextSession = Search.getFullTextSession( session ); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class, B.class ); List<?> result = fullTextQuery.list(); assertEquals( "Should match A and B only", 2, result.size() ); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class, B.class ) .setProjection( ProjectionConstants.THIS ); result = fullTextQuery.list(); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class, B.class ); assertPopulated( fullTextQuery.iterate() ); tx.commit(); fullTextSession.close(); }
@Test public void singleClass_singleResult() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); FullTextSession fullTextSession = Search.getFullTextSession( session ); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class ); List<?> result = fullTextQuery.list(); assertEquals( "Should match B only", 1, result.size() ); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class ) .setProjection( ProjectionConstants.THIS ); result = fullTextQuery.list(); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class ); assertPopulated( fullTextQuery.iterate() ); tx.commit(); fullTextSession.close(); }
@Test public void implicitAllClasses() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); FullTextSession fullTextSession = Search.getFullTextSession( session ); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery ); List<?> result = fullTextQuery.list(); assertEquals( "Should match all types", 3, result.size() ); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery ) .setProjection( ProjectionConstants.THIS ); result = fullTextQuery.list(); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery ); assertPopulated( fullTextQuery.iterate() ); tx.commit(); fullTextSession.close(); }
@Test public void threeClasses() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); FullTextSession fullTextSession = Search.getFullTextSession( session ); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class, B.class, C.class ); List<?> result = fullTextQuery.list(); assertEquals( "Should match all types", 3, result.size() ); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery, A.class, B.class, C.class ) .setProjection( ProjectionConstants.THIS ); result = fullTextQuery.list(); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( fieldFooQuery ); assertPopulated( fullTextQuery.iterate() ); tx.commit(); fullTextSession.close(); }
@Test public void singleClass_multipleResults() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); Query luceneQuery = new MatchAllDocsQuery(); FullTextSession fullTextSession = Search.getFullTextSession( session ); FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( luceneQuery, A.class ); List<?> result = fullTextQuery.list(); assertEquals( "Should match A only", 2, result.size() ); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( luceneQuery, A.class ) .setProjection( ProjectionConstants.THIS ); result = fullTextQuery.list(); assertPopulated( result ); fullTextSession.clear(); fullTextQuery = fullTextSession.createFullTextQuery( luceneQuery, A.class ); assertPopulated( fullTextQuery.iterate() ); tx.commit(); fullTextSession.close(); }
for ( Iterator<?> iter = hibQuery.iterate(); iter.hasNext(); ) { Object[] projection = (Object[]) iter.next(); assertNotNull( projection );