我使用此本機查詢來獲取數據。 select c.id,c.name from customer c,information i where i.status=1 and c.id=i.customerId
和我用下面的代碼到對象列表轉換成整數列表作爲如何將對象的ArrayList轉換爲java中的Integer列表
public List<Integer> getAllIdsByGroupId(Integer groupId) throws Exception {
List<Object[]> list = repository.getAllIdsByGroupId(groupId);
List<Integer> ids = repository.mapIds(list);
return ids;
}
public List<Object[]> getAllIdsByGroupId(Integer groupId) {
Query query = entityManager.createNativeQuery("select c.id,c.name from customer c,information i where i.status=1 and c.id=i.customerId and c.groupId=:groupId");
query.setParameter("groupId", groupId);
List<Object[]> list = query.getResultList();
if (list == null || list.isEmpty()) {
return null;
}
return list;
}
public List<Integer> mapIds(List<Object[]> list) {
List<Integer> ids = new ArrayList<Integer>();
if (list != null && !list.isEmpty()) {
Integer id;
for (Object[] object : list) {
id = (object[0] != null ? (Integer) object[0] : null);
ids.add(id);
}
}
return ids;
}
查詢檢索與ID的列表和name.and上面的代碼給出輸出,而不exception.But我需要列表僅IDS 。當我從查詢中刪除c.name如下 select c.id from customer c,information i where i.status=1 and c.id=i.customerId
上述代碼失敗,併產生異常
java.lang.Integer cannot be cast to [Ljava.lang.Object;
任何幫助?提前致謝。
*什麼*對象列表?這是SQL嗎?來自JPA提供者的本地查詢? OrientDB? – chrylis
請包括[mcve]。 – shmosel
它在我看來就像你的'list'已經是'Integer'的列表。 –