org.hibernate.hql.ast.QuerySyntaxException:unexpected token错

org.hibernate.hql.ast.QuerySyntaxException:unexpected token错误
public Aadmin quaryUserNames(String name) {
String sql = "select * from Eadmin a where a.Aname = ";
Query query = sessionFactory.getCurrentSession().createQuery(sql);
query.setString(0,name);
Aadmin a = (Aadmin)query.uniqueResult();
return a;
}
提示错误:org.hibernate.hql.ast.QuerySyntaxException:unexpected token:* near line 1,column 8 [select * from Eadmin a where a.Aname = ]
但上面的sql语句直接拿到数据库(oracle)中是对的,问怎么改
男色天使 1年前 已收到1个回答 举报

美麗蝴蝶飛 幼苗

共回答了15个问题采纳率:80% 举报

String sql = "select * from Eadmin a where a.Aname = ";
Query query = sessionFactory.getCurrentSession().createQuery(sql);
query.setString(0,name);
sql = "select * from Eadmin a where a.Aname = "; 你这句话是标准的sql语句,但是你在这里sessionFactory.getCurrentSession().createQuery(sql);开启的是hibernate的面向对象的语句所以不可以,你改成sessionFactory.getCurrentSession().createSQL(sql);就可以了

1年前 追问

5

男色天使 举报

我用的是SSh框架,这里我用sessionFactory.getCurrentSession().createQuery(sql)好呢,还是用 sessionFactory.getCurrentSession().createSQLQuery(sql) 好,我感觉sql语句要简单些,这里会不会用面向对象的语句更好

举报 美麗蝴蝶飛

刚开始学的时候确实感觉使用原生态的sql好用一些,但是 移植性不好。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.998 s. - webmaster@yulucn.com