11.07.2015 Views

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

Persistência com JPA2 e Hibernate - Inpi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

HIBERNATE SEARCH 124No código acima, a propriedade hibernate.search.default.directory_provider define o DirectoryProvider.Além disso, a propriedade hibernate.search.default.indexBase define o diretórioos índices do Lucene serão gerados. Mais sobre a configuração do DirectoryProvider pode serencontrada em http://www.hibernate.org/subprojects/search/docs.MapeamentoPodemos realizar buscas apenas nos dados das entidades indexadas. Para indicar quais entidadesdevem ser indexadas pelo Lucene, devemos utilizar a anotação @Indexed do <strong>Hibernate</strong> Search.Além disso, apenas o conteúdo dos atributos anotados <strong>com</strong> @Field será considerado nas buscas doLucene.1 @Entity2 @Indexed3 public class Pessoa {45 @Id @GeneratedValue6 private Long id;78 @Field9 private String nome ;1011 @Lob12 @Field13 private String biografia ;14 }Código Java A.1: Pessoa.javaIndexaçãoA partir do momento que as entidades estão mapeadas <strong>com</strong> as anotações do <strong>Hibernate</strong> Search,podemos indexar os dados armazenados no banco de dados referentes às entidades anotadas <strong>com</strong>@Indexed. Para realizar essa tarefa, devemos invocar o método createIndexer() da interface Full-TextEntityManager. Veja o código abaixo.1 EntityManager manager = . . .2 FullTextEntityManager fullTextManager = Search . getFullTextEntityManager ( manager );3 fullTextManager . createIndexer (). startAndWait ();Código Java A.2: Indexando o conteúdo do banco de dadosBuscaCom o conteúdo indexado, podemos realizar buscas através do <strong>Hibernate</strong> Search. Para isso, devemosrecuperar a fábrica de buscas por meio do método getSearchFactory() da FullTextEntity-Manager. Com a fábrica em mãos, devemos criar um montador de consultas para uma entidade emparticular. Observe o código a seguir.1 SearchFactory searchFactory = fullTextManager . getSearchFactory ();2 QueryBuilder pessoaQueryBuilder =124 www.k19.<strong>com</strong>.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!