2012-01-25 63 views
0

我有一个小的Java应用程序,通过Hibernate连接到MS Sql Server数据库。休眠不返回现有数据

我有一个名为用户的表,有3个柱子,用户名,密码和电子邮件。

我有一个名为UserModel的模型POJO,它拥有用户名和密码的getter和setter。

使用hibernate,我的代码在数据库上执行'find',传入用户名和密码并返回一个UserModel对象。

我需要什么:

我想删除需要通过密码进入查询,例如

List<UserModel> UserModels = null; 
    UserModel model = new UserModel(); 
    model.setName(Username); 
    //model.setPassword(password); <-- want to remove the need for this 
    UserModels = getUserModelManager().find(model); 

即使我知道数据在那里,我的查询不会返回任何内容。

任何人都可以建议为什么没有返回?

任何建议欢迎。

+0

我们需要查看UserModelManager#find的样子。 –

回答

0

我认为你需要使用HQL。

Query query = session.createQuery("from UserModel where password = :password "); 
query.setParameter("password", password); 
List<UserModel> list = query.list(); 
+0

感谢您的回复,但我不确定这是我应该这样做的方式。 一行返回与我通过用户名和密码,而不需要写入任何SQL到我的代码。 我不明白为什么代码不会返回基于用户名的行。 – TheCoder

+0

第一个所有这些都不是SQL,而是HQL。这是通过属性查询数据的方式。其次,我不知道getUserModelManager是什么。 –

+0

我重建并重新部署了我的代码,它的工作原理..仅通过用户名传递了一行。 – TheCoder