1

我使用 Kundera 作为带有 HBase 和 java 的 JPA。以下是调用 getResultList() 方法的方法:

 @Override
    public List<Activity> getAllActivities()
    {
        em = emf.createEntityManager();        
        Query q = em.createQuery("select ac from Activity ac");
        List<Activity> activities = q.getResultList();
        return activities;
    }

它抛出空指针异常。

Exception in thread "main" java.lang.NullPointerException
    at com.impetus.kundera.index.IndexManager.search(IndexManager.java:191)
    at com.impetus.kundera.query.LuceneQuery.getResultList(LuceneQuery.java:101)
    at com.impetus.activity.dao.ActivityService.getAllActivities(ActivityService.java:100)
    at ActivityExample.main(ActivityExample.java:44)

PS:HBase 中的 Activity 表有 6 条记录。
可能是什么原因?

4

2 回答 2

2

请尝试添加下面提到的属性

<property name="index_home_dir" value="./lucene" />

在persistence.xml 中。

原因是您没有可用于 HBase 的默认索引支持。

它应该适合你。

于 2012-06-13T07:39:15.307 回答
0

好吧,似乎at com.impetus.kundera.index.IndexManager.search([IndexManager.java][1]:191)有一个片段:

public final Map<String, String> search(String query, int start, int count)
{
    return indexer.search(query, start, count, false); //line 191 
}

并且索引器似乎为空。索引器作为参数传递给 IndexManager。在您的应用程序中查找索引器的实例化。

于 2012-06-13T07:01:55.440 回答