2010-06-24 52 views
2

執行下列代碼時,執行查詢/投影時出現異常。有人知道我做錯了嗎?所有幫助非常感謝。使用querydsl查詢集合時的ExceptionInInitializerError

Data lt = alias(Data.class,"Data"); 

for(String location: from ($(lt),Arrays.asList(allData.toArray())).list($(lt.getData()))){ 
    System.out.println(location); 
} 

的例外,我得到的是如下:螺紋

異常 「主要」 java.lang.ExceptionInInitializerError 在com.mysema.query.collections.MiniApi(MiniApi.java:22 )...等

所致:在com.mysema.codegen.EvaluatorFactory顯示java.lang.NullPointerException (EvaluatorFactory.java:51) 在com.mysema.query.collections.ExprEvaluatorFactory(ExprEvaluatorFactory。 java:55) 在com.mysema.query.collections.ExprEvaluatorFactory。(ExprEvaluatorFactory.java:50) 在com.mysema.query.collections.ExprEvaluatorFactory。(ExprEvaluatorFactory.java:32) ... 4個

+0

你可以嘗試與最新版本的Querydsl相同,並提交一個錯誤,如果它不是固定的。給定的堆棧跟蹤與舊版本的Querydsl相關。 – 2010-06-30 18:23:13

回答

2

確保Data類有一個空構造函數。我目前正在休假,並且沒有資源來進一步調查堆棧跟蹤,但添加空的構造函數是我第一次嘗試。

Querydsl的別名功能生成動態子類,並且對於沒有空的非私有構造函數的類會失敗。

+0

感謝蒂莫從海灘回答!生活的夢想.....不幸的是,我已經確保默認的無參數構造函數是空的。然而,還有其他的公共構造函數不是空的。類文件是由Hibernate生成的,儘管爲了這個測試的目的,我沒有將它們與querydsl hibernate類結合使用。我只是看到如何查詢正常的內存對象的每個集合。謝謝你的時間。 – 2010-06-24 20:06:41

+0

conrad-rowlands,你能找到解決方案嗎? – 2010-07-07 21:32:51

+0

+1用於在度假時回答。 – ponzao 2010-07-08 12:08:43