我使用Kundera作为JPA与HBase和java。以下是调用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;
}
抛出nullpointer异常。
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)
P.S:HBase中的活动表有6条记录 可能是什么原因?
答案 0 :(得分:2)
请尝试添加下面提到的属性
<property name="index_home_dir" value="./lucene" />
在persistence.xml中。
原因是您没有HBase可用的默认索引支持。
它应该适合你。
答案 1 :(得分: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。在应用程序中查找索引器的实例化。