使用弹簧和休眠对象

时间:2009-07-13 09:19:16

标签: java hibernate spring java-ee

希望每个人都很酷。我一直试图用spring-hibernate做一些事情,但它仍然是一个失败。我很新。我需要一点帮助。假装一个POJO类Users.i想要返回用户名对象的用户对象。通过执行此操作,我可以通过id返回Users对象

   return (Users) getHibernateTemplate().get(Users.class, id);

对我来说,通过用户名获取Users对象似乎是一个挑战。我试过这个

List<Users> users = getHibernateTemplate().find("from Users u where u.username=?",username);
return  users.get(0);

甚至这个

return (Users)getHibernateTemplate().find("from Users u where u.username=?",username).get(0);

我应该怎么做。返回一个Users对象数组和/或List.Thanks读取它的正确方法是什么。

3 个答案:

答案 0 :(得分:2)

试试这个

Query q = session.createQuery("select * from Users u where u.username=:username");
q.setString("username", username);

答案 1 :(得分:1)

也许你可以试试这个?

List l =getHibernateTemplate().find("from Users u where u.username=?",new Object[]{username});
if (l.size() > 0)
 return (User)l.get(0);
else
return null;

答案 2 :(得分:1)

另一种更好的方法是使用Criteria。请参阅下面的示例。

    DetachedCriteria deCriteria = DetachedCriteria.forClass(User.class, "u");
    Criteria criteria = deCriteria.getExecutableCriteria(session);

    criteria.add(Restrictions.eq("u.username", username));
    List<User> userList = criteria.list();