按标准查找Hibernate得到单个结果

时间:2010-04-22 13:57:50

标签: hibernate

我正在尝试使用Hibernate。

我想通过id获取用户这就是我做的事情

public User get(DetachedCriteria dc){
    List<User> users = getHibernateTemplate().findByCriteria(dc);
    if(users != null)
    {
        return users.get(0);
    }
    else return null;
}

但是当用户不在数据库中时它会失败。你能帮我理解如何实现这个目标吗?

由于

1 个答案:

答案 0 :(得分:4)

如果你想按ID加载某些内容,你应该使用Load或Get。 Ayende在The difference between Get, Load and querying by id之间的差异很好。

当用户不在数据库中时,查询失败的原因。这是因为查询将返回一个空列表,该列表与null不同。因此,当您尝试访问列表中没有任何内容的第0个元素时,您可能会获得索引超出范围的异常。