新手提问:hibernate的creatQuery查询的写法。

cici7788 2007-05-23 02:35:49
我现在有一个数据库webases中有userinfo表,主键是id varchar(45),想用creatQuery查询id为yet的密码 password,进行登陆验证。但是怎么查找都查不到。(数据库中有id为yet的信息.)
public Userinfo getUserAccount(String username){
try{
session = SessionFactory.currentSession();
tx = session.beginTransaction();
Userinfo userinfo;

SQLQuery sqlQuery = session.createSQLQuery("select s.id as {user.id}," +
"s.password as {user.password} " +
"from userinfo s where s.id='" + username + "'");
sqlQuery.addEntity("user",Userinfo.class); //加入查询实体
it = sqlQuery.list().iterator(); //执行查询
tx.commit(); //提交查询

if(it.hasNext()){
userinfo = (Userinfo) it.next();
return userinfo;
}
else{
userinfo = null;
return userinfo;
}

}catch(HibernateException e){
e.printStackTrace();
if(tx != null){
tx.rollback();
}
return null;
}finally{
session.close();
}
}

查询语句是select s.id as {user.id},s.password as {user.password} from userinfo s where s.id='" + username + "'"
我后来换成了select * from webases.userinfo 都查询不到结果.不知是哪里出错了.还忘大侠们指点.谢谢!
...全文
297 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_d_s 2007-05-24
  • 打赏
  • 举报
回复
路过
cici7788 2007-05-24
  • 打赏
  • 举报
回复
搞好了,我的语句里用的是userinfo,改成Userinfo就可以了.准备转去用更简单的HQL.
cici7788 2007-05-23
  • 打赏
  • 举报
回复
我用的是SQL....HQL还没看呢.直接看的SQL....
lhx20 2007-05-23
  • 打赏
  • 举报
回复
我的做完是

Userinfo user = (Userinfo)session.load(Userinfo.class,yet);
String password = user.getPassword();

你的HQL好复杂啊
按照你的做法HQL我会这样写select user.password from Userinfo as user where id=yet

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧