1

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)

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 
}

また、インデクサーは null のようです。インデクサーはパラメーターとして IndexManager に渡されます。アプリケーションでインデクサーのインスタンス化を探します。

于 2012-06-13T07:01:55.440 に答える