Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate Search 5.5.3最终不获取索引数据结果?_Java_Hibernate_Spring Mvc_Jpa_Hibernate Search - Fatal编程技术网

Java Hibernate Search 5.5.3最终不获取索引数据结果?

Java Hibernate Search 5.5.3最终不获取索引数据结果?,java,hibernate,spring-mvc,jpa,hibernate-search,Java,Hibernate,Spring Mvc,Jpa,Hibernate Search,我已经使用以下maven依赖项设置了hibernate <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.1.0.Final</version> </dependency> <d

我已经使用以下maven依赖项设置了hibernate

     <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.1.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.1.0.Final</version>
    </dependency>
   <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-search-orm</artifactId>
        <version>5.5.3.Final</version>
    </dependency>
     <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.7.2.RELEASE</version>
    </dependency>


    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.driver.version}</version>
    </dependency>
这是我正在运行的代码

  public List<Deals> findDealBySubcatIdhsearch(long subCatId,String search){
    //Option or suboption may be included in future, if needed
    logger.info("Deal nameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"+search+"iiiiiiiiiiid"+subCatId);

    FullTextEntityManager fullTextEntityManager  = org.hibernate.search.jpa.Search.
                getFullTextEntityManager(em);
     QueryBuilder qb = fullTextEntityManager.getSearchFactory()
     .buildQueryBuilder().forEntity(Deals.class).get();
   org.apache.lucene.search.Query query = qb
     .keyword().wildcard().onFields("dealName").matching("*"+search.toLowerCase()+"*")
     .createQuery();

   org.hibernate.search.jpa.FullTextQuery jpaQueryy = 
      fullTextEntityManager.createFullTextQuery(query, Deals.class);

//jpaQueryy.enableFullTextFilter("category").setParameter("categoryId", 1);
   List<Deals> results = jpaQueryy.getResultList();


                    logger.info("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"+jpaQueryy.getResultSize()+"Subid"+subCatId);
                    if(jpaQueryy.getResultList().size()==0)
                    {
                          query = qb
                                 .keyword().onFields("dealName").matching("*"+search.toLowerCase()+"*")
                                 .createQuery();

                                jpaQueryy = 
                                  fullTextEntityManager.createFullTextQuery(query, Deals.class);

                                results = jpaQueryy.getResultList();
                    }
                     List<Deals> output = 
                            results.parallelStream()
                              .filter(d -> d.getSubcategories().getSubcategoryId() == subCatId)
                              .collect(Collectors.toList());

   return output;
}
交易期权

@Entity
@Indexed
@Table(name = "dealoptions")
public class DealOptions
{

 @Id
 @Basic(optional = false)
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 @Column(name = "option_id")
 private Long optionId;

 @Column(name = "name")
 @Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO)
 private String Name;


 } 

但是,当我持久化一个对象时,Hibernate搜索数据被索引,但Hibernate搜索不获取持久化对象的详细信息。控制台中没有错误。错误是什么?

我终于找到了错误,错误是我用于Hibernate搜索的参数dealname有空值,因为它没有空值获取结果。

你说的“不获取”到底是什么意思?您是否正在运行查询,但未看到预期结果?这将有助于查看您正在运行的代码以及预期的结果。@Gunnar Hibernate搜索不会获取持久化对象的详细信息
@Entity
@Indexed
@Table(name = "deals")
 public class Deal
 {

 @Id
 @Basic(optional = false)
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 @Column(name = "deal_id")
 private Long dealId;

 @Column(name = "deal_name")
 @Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO)
 private String dealName;
 }
@Entity
@Indexed
@Table(name = "dealoptions")
public class DealOptions
{

 @Id
 @Basic(optional = false)
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 @Column(name = "option_id")
 private Long optionId;

 @Column(name = "name")
 @Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO)
 private String Name;


 }