使用Hibernate Search的indexEmbedded和containsIn时出现NullPointerException

时间:2017-04-28 11:37:20

标签: lucene hibernate-search

我有2个相关实体,并在索引时获得NullPointerException。

实体

std::terminate()

映射器类是

public final class Application implements java.io.Serializable {
    ....
    private java.util.Set roles; // NOT nullable
    ....
}

public final class Role implements java.io.Serializable {
    ....
    private ch.adnovum.nevisidm.service.dto.Application application;

    ....
}

例外是

public class ApplicationMapper extends AbstractMapper {
    ...
    @Override
    public void map(Class<?> clazz) {
        ...
        indexedMapping
        .property("roles", ElementType.FIELD)
        .containedIn();
    }
}

public class RoleMapper extends AbstractMapper {
    ...
    @Override
    public void map(Class<?> clazz) {
        indexedMapping
       .property("application", ElementType.METHOD)
       .indexEmbedded()
       .prefix("app.")
       .targetElement(Application.class);
    }
}

我使用Hibernate Search 4.1.1和lucene 3.5。 有没有人知道会出现什么问题?

谢谢, 诉

1 个答案:

答案 0 :(得分:0)

您遇到的问题很可能是在更高版本的Hibernate Search中解决的错误。

您使用的是非常旧版本的Hibernate Search(2012年发布,自2013年1月起过时)。最新版本是5.7.0.Final,于2017年2月发布。

升级到最新版本的Hibernate Search可能会解决您的问题;虽然从这样一个旧版本升级可能涉及很多工作。

如果您无法为解决问题付出太多努力,可以尝试使用migration guides升级到最新的4.x(4.5.3.Final,2015年发布)。