@After public void tearDown() throws Exception { ftem.getTransaction().begin(); ftem.createQuery( "delete from " + EntityWithIdClass.class.getSimpleName() ).executeUpdate(); ftem.createQuery( "delete from " + EntityWithEmbeddedId.class.getSimpleName() ).executeUpdate(); ftem.purgeAll( EntityWithIdClass.class ); ftem.purgeAll( EntityWithEmbeddedId.class ); ftem.flushToIndexes(); ftem.getTransaction().commit(); ftem.close(); emf.close(); }
/** * Test that a entity manager can successfully be serialized and deserialized. * * @throws Exception in case the test fails. */ @Test public void testSerialization() throws Exception { FullTextEntityManager em = Search.getFullTextEntityManager( factory.createEntityManager() ); indexSearchAssert( em ); FullTextEntityManager clone = SerializationTestHelper.duplicateBySerialization( em ); indexSearchAssert( clone ); clone.close(); em.close(); }
@After public void deleteTestData() { EntityManager em = factory.createEntityManager(); FullTextEntityManager ftem = Search.getFullTextEntityManager( em ); ftem.getTransaction().begin(); QueryDescriptor query = ElasticsearchQueries.fromJson( "{ 'query': { 'match_all' : {} } }" ); List<?> result = ftem.createFullTextQuery( query ).getResultList(); for ( Object entity : result ) { ftem.remove( entity ); } ftem.getTransaction().commit(); ftem.close(); }
@After @Override public void tearDown() { FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager( entityManager ); fullTextEntityManager.purgeAll( Book.class ); fullTextEntityManager.flushToIndexes(); fullTextEntityManager.close(); super.tearDown(); }
@Test public void testQueryViaEntityManager() { EntityManager em = factory.createEntityManager(); FullTextEntityManager ftem = Search.getFullTextEntityManager( em ); ftem.getTransaction().begin(); QueryDescriptor query = ElasticsearchQueries.fromJson( "{ 'query': { 'match' : { 'lastName' : 'Hergesheimer' } } }" ); Object[] result = (Object[]) ftem.createFullTextQuery( query, GolfPlayer.class ) .setProjection( ElasticsearchProjectionConstants.SOURCE ) .getSingleResult(); String source = (String) result[0]; JsonHelper.assertJsonEqualsIgnoringUnknownFields( "{" + "'lastName': 'Hergesheimer'," + "'fullName': 'Klaus Hergesheimer'," + "}", source ); ftem.getTransaction().commit(); ftem.close(); }
em.getTransaction().commit(); em.close();
private void purgeAll(Class<?>... entityTypes) throws Exception { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( createEntityManager() ); for ( Class<?> entityType : entityTypes ) { fullTextEm.purgeAll( entityType ); fullTextEm.flushToIndexes(); } int numDocs = fullTextEm.getSearchFactory().getIndexReaderAccessor().open( entityTypes ).numDocs(); fullTextEm.close(); assertThat( numDocs ).isEqualTo( 0 ); }
em.getTransaction().commit(); em.close();
@Test public void testHibernateSearchJPAAPIUsage() throws Exception { final FullTextEntityManager ftem = Search.getFullTextEntityManager( getFactory().createEntityManager() ); ftem.getTransaction().begin(); final Insurance insurance = new Insurance(); insurance.setName( "Macif" ); ftem.persist( insurance ); ftem.getTransaction().commit(); ftem.clear(); ftem.getTransaction().begin(); final QueryBuilder b = ftem.getSearchFactory() .buildQueryBuilder() .forEntity( Insurance.class ) .get(); final Query lq = b.keyword().onField( "name" ).matching( "Macif" ).createQuery(); final FullTextQuery ftQuery = ftem.createFullTextQuery( lq, Insurance.class ); final List<Insurance> resultList = ftQuery.getResultList(); assertThat( getFactory().getPersistenceUnitUtil().isLoaded( resultList.get( 0 ) ) ).isTrue(); assertThat( resultList ).hasSize( 1 ); for ( Object e : resultList ) { ftem.remove( e ); } ftem.getTransaction().commit(); ftem.close(); }
private void startAndWaitMassIndexing(Class<?>... entityTypes) throws InterruptedException { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( createEntityManager() ); fullTextEm.createIndexer( entityTypes ).purgeAllOnStart( true ).startAndWait(); int numDocs = fullTextEm.getSearchFactory().getIndexReaderAccessor().open( entityTypes ).numDocs(); fullTextEm.close(); assertThat( numDocs ).isGreaterThan( 0 ); }
private void assertEntityHasBeenIndexed() throws Exception { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( createEntityManager() ); fullTextEm.getTransaction().begin(); QueryBuilder queryBuilder = fullTextEm.getSearchFactory() .buildQueryBuilder() .forEntity( IndexedNews.class ) .get(); Query luceneQuery = queryBuilder.keyword().wildcard().onField( "newsId" ).ignoreFieldBridge().matching( "tit*" ).createQuery(); @SuppressWarnings("unchecked") List<IndexedNews> list = fullTextEm.createFullTextQuery( luceneQuery ).getResultList(); assertThat( list ).hasSize( 1 ); List<IndexedLabel> labels = list.get( 0 ).getLabels(); assertThat( labels ).hasSize( 2 ); assertThat( contains( labels, "massindex" ) ).isTrue(); assertThat( contains( labels, "test" ) ).isTrue(); fullTextEm.getTransaction().commit(); fullTextEm.close(); }
ftem.purgeAll( Company.class ); ftem.flushToIndexes(); ftem.close();
@SuppressWarnings("unchecked") private void assertAssociatedElementsHaveBeenIndexed() throws Exception { FullTextEntityManager fullTextEm = Search.getFullTextEntityManager( createEntityManager() ); fullTextEm.getTransaction().begin(); QueryBuilder b = fullTextEm.getSearchFactory().buildQueryBuilder().forEntity( IndexedLabel.class ).get(); { Query luceneQuery = b.keyword().wildcard().onField( "name" ).matching( "tes*" ).createQuery(); List<IndexedLabel> labels = fullTextEm.createFullTextQuery( luceneQuery ).getResultList(); assertThat( labels ).hasSize( 1 ); assertThat( contains( labels, "test" ) ).isTrue(); } { Query luceneQuery = b.keyword().wildcard().onField( "name" ).matching( "mas*" ).createQuery(); List<IndexedLabel> labels = fullTextEm.createFullTextQuery( luceneQuery ).getResultList(); assertThat( labels ).hasSize( 1 ); assertThat( contains( labels, "massindex" ) ).isTrue(); } fullTextEm.getTransaction().commit(); fullTextEm.close(); }