我有一个由数据库查询(Hibernate)填充的列表ID。数据库
是PSQL。ids列为bigint类型。
现在,ids列表已填充,没有任何例外,如下所示
List<Long> ids = getIds();//getIds returns List<Long>
但是当我试图循环通过ids列表上的项目时
for (Long id : ids)
我有个例外
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
该值为206131954。我不知道为什么它可以将值添加到列表中,但后来在尝试遍历列表时出现了错误。
public List<Long> getIds() {
List<Long> externalIds = new ArrayList<Long>();
List<Person> persons = repository.getPeople();
for (Person person : persons) {
List<Long> ids = repository.getIdentifications(person);
if (ids.size() > 0) {
externalIds.addAll(ids);
}
}
return externalIds;
}
public List<Long> getIdentifications() {
String q = "select person_id from relevantpeople";
Query query = entityManager.createNativeQuery(q);
return (List<Long>) query.getResultList();
}