gpt4 book ai didi

java - JPA Hibernate 搜索预测

转载 作者:行者123 更新时间:2023-11-30 09:58:11 25 4
gpt4 key购买 nike

我正在尝试将 JPA 与 HibernateSearch 结合使用。我在 http://docs.jboss.org/hibernate/stable/search/reference/en/html/search-query.html 中使用了示例 5.3 .结果符合预期。

然而,返回的数据是一个巨大的图表。我只需要数据的主键。所以,我尝试了示例 5.9,但它只显示了 Hibernate API。没有 javax.persistence.Query.setProjection() 方法。

我可以使用什么来获取搜索结果的主键?我应该尝试从 JPA 中的 EntityManager 获取 hibernate session 吗?

感谢您的帮助。

最佳答案

示例 5.3 有点误导。不必使用 javax.persistence.Query。相反,org.hibernate.search.jpa.FullTextQuery 具有我需要的 setProjection() 方法。这是生成的代码(具有完全限定的类名):


//Open JPA session
javax.persistence.EntityManagerFactory emf=javax.persistence.Persistence.createEntityManagerFactory("manager1");
javax.persistence.EntityManager em=emf.createEntityManager();
em.getTransaction().begin();

//Make a FullText EM from the JPA session.
org.hibernate.search.jpa.FullTextEntityManager fullTextSession=org.hibernate.search.jpa.Search.getFullTextEntityManager(em);

//Build the lucene query.
org.apache.lucene.queryParser.QueryParser parser=new org.apache.lucene.queryParser.QueryParser("data1",new org.apache.lucene.analysis.standard.StandardAnalyzer());
org.apache.lucene.search.Query query=parser.parse("FindMe");

//Convert to a hibernate query.
org.hibernate.search.jpa.FullTextQuery query2=fullTextSession.createFullTextQuery(query, SampleBean.class);

//Set the projections
query2.setProjection("id");

//Run the query.
for (Object[] row:(List)query2.getResultList()){
//Show the list of id's
System.out.println(row[0]);
}

//Close
em.getTransaction().commit();
em.close();
emf.close();

query2 进行投影,一切正常!

关于java - JPA Hibernate 搜索预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com