hibernate搜索异常 - 即使实体不是EntityInfo列表的一部分,它也会被加载

时间:2018-05-27 07:51:51

标签: java hibernate hibernate-search

Hibernate搜索5.5.2 在测试centos7时,我们从集成测试中得到了这个例外 (除了centos7而不是6,我们没有改变任何东西。)

org.hibernate.search.exception.AssertionFailure: An entity got loaded even though it was not part of the EntityInfo list
    at org.hibernate.search.query.hibernate.impl.CriteriaObjectInitializer.initializeObjects(CriteriaObjectInitializer.java:95)
    at org.hibernate.search.query.hibernate.impl.QueryLoader.executeLoad(QueryLoader.java:88)
    at org.hibernate.search.query.hibernate.impl.AbstractLoader.load(AbstractLoader.java:58)
    at org.hibernate.search.query.hibernate.impl.FullTextQueryImpl.list(FullTextQueryImpl.java:201)
    at org.hibernate.search.jpa.impl.FullTextQueryImpl.getResultList(FullTextQueryImpl.java:153)

你知道是什么原因引起的吗?

1 个答案:

答案 0 :(得分:0)

这在我的项目中发生的原因:

  • 我们使用了类的层次结构-相同的表,但不同的鉴别符
  • 数据库已重新创建,但索引仍留在磁盘上
  • 搜索时-在索引中发现了一个旧实体,其类型(子类)与数据库中的类型不同(因为在数据库中记录是从头开始按不同顺序创建的)。

因此它在索引中找到一种实体类型,而在DB中找到另一种实体类型,并抛出了此错误。