我正在尝试使用Hibernate。
我想通过id获取用户这就是我做的事情
public User get(DetachedCriteria dc){
List<User> users = getHibernateTemplate().findByCriteria(dc);
if(users != null)
{
return users.get(0);
}
else return null;
}
但是当用户不在数据库中时它会失败。你能帮我理解如何实现这个目标吗?
由于
答案 0 :(得分:4)
如果你想按ID加载某些内容,你应该使用Load或Get。 Ayende在The difference between Get, Load and querying by id之间的差异很好。
当用户不在数据库中时,查询失败的原因。这是因为查询将返回一个空列表,该列表与null不同。因此,当您尝试访问列表中没有任何内容的第0个元素时,您可能会获得索引超出范围的异常。