【发布时间】:2017-04-25 14:59:02
【问题描述】:
我在 hibernate 3 中使用 join 和 where 子句。但我无法找到解决方案。我得到了错误。
Query qry= session.createQuery("SELECT addemployee.eid,addemployee.fname,addemployee.location,"
+ "empdet.jtitle,empdet.leadname FROM addemployee LEFT JOIN empdet ON addemployee.eid = empdet.eid WHERE (addemployee.eid ='"+id+"')");
List l = qry.list();
Iterator it=l.iterator();
while(it.hasNext())
{
Object rows[] = (Object[])it.next();
System.out.println(rows[0]+separator+rows[1]+separator+rows[2]+separator+rows[3]+separator+rows[4]);
}
问题:org.hibernate.hql.ast.QuerySyntaxException:意外令牌:在第 1 行第 127 列附近打开 [SELECT addemployee.eid,addemployee.fname,addemployee.location,empdet.jtitle,empdet.leadname FROM addemployee LEFT JOIN empdet ON addemployee.eid = empdet.eid WHERE (addemployee.eid ='206')]
【问题讨论】:
-
它是哪个数据库?当您使用 DBVis 或 SQL 开发人员等工具直接在 DB 上运行此查询时会发生什么? SyntaxException 表明它的格式错误
-
您似乎正在尝试将 SQL 传递给需要 HQL 的方法。您是否尝试过使用
createSQLQuery而不是createQuery? -
您的
addemployee.eid是字符串还是整数? -
我使用的是 Mysql 5.7
-
eid-integer 和其余字段保存 varchar。