У меня есть список List<Long> list
, который содержит: [160774, 7212775] и Long id = 7212775
. Мне нужно проверить, содержит ли список элемент со значением id
. Как это сделать? К сожалению, list.contains(id)
возвращает false
в моем случае.
Я использую это так:
@RequestMapping("/case/{id}")
public String openCase(@PathVariable("id") Long id) {
log.debug(caseDAO.findAllCasesId()); // [160774, 7212775]
log.debug(id); // 7212775
if(caseDAO.findAllCasesId().contains(id)) {
return "case";
} else {
return "404";
}
}
Часть DAO (Hibernate, но родной sql здесь):
public List<Long> findAllCasesId() {
String sql = "select id from cases";
SQLQuery query = getSession().createSQLQuery(sql);
return query.list();
}
решаемые
Проблема была с caseDAO.findAllCasesId()
, который возвращает список Object
, а не список Long
. Я исправил это следующим образом:
SQLQuery query = getSession().createSQLQuery(sql).addScalar("id", Hibernate.LONG);
Большое спасибо: Минаса Наюки