Pergunta

Em um aplicativo usando pilha Wicket+Spring+JPA/Hibernate, tenho uma página de entrada/pesquisa que deve ter recursos de pesquisa bastante complexos, onde os registros salvos em um banco de dados são filtrados usando uma infinidade de opções de filtragem. Até agora, usei a API de critérios JPA para criar a consulta de banco de dados, mas está ficando bastante confusa. Eu queria saber se a pesquisa de hibernato seria uma boa opção para isso, embora eu realmente não precise de nenhum recurso de pesquisa de texto completo, apenas sinto (pelo que leio sobre isso) que produzir a consulta pode ser um pouco mais fácil?

Foi útil?

Solução

Desculpe, mas a pesquisa de hibernato é baseada na lucência. Isso é não Apenas uma outra linguagem de consulta.

O Lucene não se refere a entidades em seu banco de dados, ele procura attibutes no índice Lucene. Pesquisa de hibernato Adicione a funcionalidade para conectar as entidades do seu banco de dados ao índice Lucene.

A pesquisa de hibernato e o Lucene são criar uma ferramenta quando você precisar de uma pesquisa avançada de texto completo. Mas se você não precisar, é apenas muito trabalho (e problemas).

Portanto, desde que você não use Lucene, a pesquisa de hibernação não atende às suas necessidades.

Outras dicas

O caso de uso primário para pesquisa de hibernato é a pesquisa completa. No entanto, também pode ser usado para indexar/pesquisar atributos/critérios simples. Se a sintaxe para escrever as consultas é mais simples do que uma consulta de critérios é uma questão de gosto. Se você não estiver usando os recursos de pesquisa da FullText, deve considerar que está adicionando uma etapa adicional ao seu aplicativo. A consulta de pesquisa será executada contra o índice Lucene, que retornará IDs da entidade (a menos que a projeção seja usada). As entidades correspondentes serão buscadas no banco de dados. Por outro lado, depois de usar a pesquisa do Hibernate, é fácil "melhorar" sua pesquisa adicionando alguns recursos de pesquisa de texto completo a alguns de seus critérios (se possível).

Se você está usando ou não, acho que a chave é escrever algum tipo de estrutura que crie programaticamente suas consultas - pesquisas ou consultas de critérios.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top