我有清单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();
}
SOLVED
问题在于caseDAO.findAllCasesId()
,返回列表Object
,不是列表Long
。我通过以下方式纠正了这个问题:
SQLQuery query = getSession().createSQLQuery(sql).addScalar("id", Hibernate.LONG);
非常感谢:水濑奈雪 https://stackoverflow.com/users/839689/nayuki-minase
自动装箱时,您需要确保在文字后添加 L,即Long id = 7212775L
为了这个工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)