package com.manning.hsia.dvdstore.action;
import java.util.List;
import javax.persistence.EntityManager;
import org.hibernate.Session;
import org.hibernate.search.FullTextSession;
import org.hibernate.search.jpa.FullTextEntityManager;
import com.manning.hsia.dvdstore.model.Item;
import com.manning.hsia.dvdstore.util.EntityManagerHolder;
import com.manning.hsia.dvdstore.util.SessionHolder;
/**
* Example 2.8, 2.9
*/
public class Indexer {
public void indexWithJPA() {
EntityManager em = EntityManagerHolder.getEntityManager();
//wrap a EntityManager object
FullTextEntityManager ftem = org.hibernate.search.jpa.Search.getFullTextEntityManager(em);
ftem.getTransaction().begin();
@SuppressWarnings("unchecked")
List<Item> items = em.createQuery("select i from Item i").getResultList();
for (Item item : items) {
ftem.index(item); //manually index an item instance
}
ftem.getTransaction().commit(); //index are written at commit time
}
public void indexWithHibernate() {
Session session = SessionHolder.getSession();
//wrap a Session object
FullTextSession ftSession = org.hibernate.search.Search.getFullTextSession(session);
ftSession.getTransaction().begin();
@SuppressWarnings("unchecked")
List<Item> items = session.createCriteria(Item.class).list();
for (Item item : items) {
ftSession.index(item); //manually index an item instance
}
ftSession.getTransaction().commit(); //index are written at commit time
}
}