0
下面的代码工作正常,但我需要扩展它以支持从两个类(UserEnt和BookEnt)到40个类。为了提高性能,我将允许用户选择要搜索的类,这意味着createFullTextQuery方法中的类应根据选择动态声明。这可能吗?否则,我将不得不在createFullTextQuery中声明40个类。Hibernate搜索:定义动态搜索类
// LUCENE SEARCH
String[] fields = {"firstName", "lastName", "name"};
QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_34,
fields, new StandardAnalyzer(Version.LUCENE_34));
org.apache.lucene.search.Query luceneQuery = null;
try {
luceneQuery = parser.parse(s);
}
catch (ParseException e) {
throw new RuntimeException("Unable to parse query: " + s, e);
}
// HIBERNATE SEARCH WRAP
FullTextEntityManager ftEm = Search.getFullTextEntityManager(em);
javax.persistence.Query query = ftEm.createFullTextQuery(luceneQuery,
UserEnt.class, BookEnt.class);
List <?> results = query.getResultList();
System.out.println("Records found:"+results.size());