@Test(groups = "ch07")
  public void testPrefixQuery() throws Exception {
    FullTextSession session = Search.getFullTextSession(openSession());
    Transaction tx = session.beginTransaction();
    buildIndex(session, tx);

    String userInput = "sea";

    tx = session.beginTransaction();
    PrefixQuery query = new PrefixQuery(new Term("title", userInput));
    System.out.println(query.toString());

    org.hibernate.search.FullTextQuery hibQuery = session.createFullTextQuery(query, Dvd.class);
    List<Dvd> results = hibQuery.list();

    assert results.size() == 4 : "incorrect hit count";
    for (Dvd dvd : results) {
      assert dvd.getTitle().indexOf("Sea") >= 0;
      System.out.println(dvd.getTitle());
    }

    for (Object element : session.createQuery("from " + Dvd.class.getName()).list())
      session.delete(element);
    tx.commit();
    session.close();
  }
 private void buildIndex(FullTextSession session, Transaction tx) {
   for (int x = 0; x < titles.length; x++) {
     Dvd dvd = new Dvd();
     dvd.setTitle(titles[x]);
     dvd.setId(x);
     session.save(dvd);
   }
   tx.commit();
   session.clear();
 }
  public static void main(String[] args) {

    //		Criação de instâncias de Produtos. Cd, DVD e livro herdam de Produto.
    //		Então são considerados produtos
    Cd cd = new Cd();
    Dvd dvd = new Dvd();
    Livro livro1 = new Livro();
    Livro livro2 = new Livro();

    dvd.setNome("As aventuras de PI");
    dvd.setPreco(20);
    dvd.setTempoDuracao(120L);

    cd.setNome("Raul Seixas");
    cd.setPreco(50L);
    cd.setNumeroFaixas(7);

    livro1.setAutor("Augusto");
    livro1.setPreco(70);
    livro1.setNome("Colecionador de Lágrimas");

    livro2.setAutor("Augusto");
    livro2.setPreco(70);
    livro2.setNome("Colecionador de Lágrimas 2");

    // Instanciando um ArrayList de produtos
    ArrayList<Produto> lista = new ArrayList<Produto>();

    // Adicionando Produtos ao ArrayList
    lista.add(cd);
    lista.add(dvd);
    lista.add(livro1);
    lista.add(livro2);

    for (Produto produto : lista) {
      // chamada ao toString sobrescrito de cada classe de produto
      System.out.println(produto.toString());
    }
  }
 public Object getValueAt(int row, int col) {
   Dvd theDvd = data.get(row);
   Object theData = null;
   switch (col) {
     case 0:
       theData = theDvd.getTitle();
       break;
     case 1:
       theData = theDvd.getCategory();
       break;
     case 2:
       theData = theDvd.getRunningTime();
       break;
     case 3:
       theData = theDvd.getYearReleased();
       break;
     case 4:
       theData = theDvd.getPrice();
       break;
     default:
       break;
   }
   return theData;
 }