如何在JPA查询中选择最佳匹配项

时间:2013-02-24 13:29:43

标签: java sql jpa persistence jpql

以下查询将返回like匹配的第一个项目(真正的任何旧项目)。

TypeQuery<Company> query = em.createQuery(
   "select c from Company c where c.name like ?1", Company.class);
query.setMaxResults(1);
query.setParameter(1, "%" + name + "%");
result = query.getSingleResult();

但我希望最佳匹配显示为我的单个结果 这里最好的意思是匹配与给定name的差异最小 我可以将哪种order by应用于此查询以实现此目的?

1 个答案:

答案 0 :(得分:1)

如果你需要这样的搜索,你可以将lucene和hibernate一起使用吗?

请参阅文档http://docs.jboss.org/hibernate/search/3.3/reference/en-US/html_single/#search-query-lucene-api

我认为这就是你需要的。

同时查看https://groups.google.com/forum/?fromgroups=#!topic/ravendb/-L0LMAScJnA