1
你好,這代碼只給我1列,因爲的GroupBy的背面:選擇從表中的所有行,但保持條件的完整
@Override
public Map<Integer, List<Cluster>> getPartnerIdClusterMap(boolean minorOnly, boolean foreignCountriesOnly) {
BooleanBuilder predicate = new BooleanBuilder();
if (minorOnly) {
predicate.and(qCluster.type.eq(ClusterType.MINOR));
}
if (foreignCountriesOnly) {
predicate.and(qPartner.country.code2.ne("nl"));
}
return from(qCluster)
.innerJoin(qCluster.partner, qPartner)
.where(predicate)
.where(qPartner.country.code2.ne("nl"))
.map(qPartner.id, GroupBy.list(qCluster));
}
這是我很高興地想知道:
我想選擇Cluster表的所有行。但我想保持這些條件(innerJoin,where子句等)完好無損。
所以我試過這樣:
return (Map<Integer, List<Cluster>>) from(qCluster)
.innerJoin(qCluster.partner, qPartner)
.where(predicate)
.where(qPartner.country.code2.ne("nl"));
待澆鑄,我從JPQLQuery上面的代碼爲地圖類型誠實Netbeans的。但不幸的是,代碼不起作用。因爲我得到以下錯誤:
HTTP Status 500 - Request processing failed; nested exception is java.lang.ClassCastException: com.mysema.query.jpa.impl.JPAQuery cannot be cast to java.util.Map
這裏是錯誤的截圖:
有人可以幫也許我,好嗎?
如果您刪除地圖,它可能不會返回地圖。將其分配給Object類型,然後調試什麼是實際類型,然後將方法簽名更改爲該類型。 –
好吧我現在已經鑄造它到一個對象類型的鏈接:http://pastebin.com/rJpJuwys 但是,然後我得到在Netbeans的語法錯誤:對象不能轉換爲地圖 – superkytoz
你通常必須轉換將結果手動查詢到地圖。順便說一句,我不是標準專家,但你似乎並沒有真正執行查詢。 – Thomas