2012-06-13 48 views
1

我使用Kundera作爲JPA與HBase和Java。以下是調用getResultList()方法的方法:在昆德拉使用getResultList()方法時引發Nullpointer異常

@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) 

P.S:在HBase的活動表中有6條。
它可能是什麼原因?

回答

2

請儘量在persistence.xml中添加以下

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

提到的屬性。

原因是您沒有HBase提供的默認索引支持。

它應該爲你工作。

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。在您的應用程序中尋找索引器的實例。