我有以下代码片段。它在第 3 行处抛出异常,但查询工作正常 managementmnt studio(sql server 2005)
String query = "select * from user where userId=" + profileId
+ " and spaceName='" + spaceName + "'";
Session session = HibernateUtil.getSession();
List<PersonDetailsData> personDetailsData = new ArrayList<PersonDetailsData>(
session.createQuery(query).list()); //line 3
这是一个异常(exception)
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from user where userId=216 and spaceName='DIG']
当查询在管理sudio中运行良好时,我无法弄清楚查询有什么问题?
最佳答案
这是原生查询,不是 hql。 如果您已将表字段映射到您需要的类字段
session.createSQLQuery(query, PersonDetailsData.class).list();
或创建 hql 类型查询 -
select p from PersonDetailData p where p.userId = :userId and p.spaceName =:spaceName
并在查询中使用参数,而不是直接值。
关于java - 尽管 sql server 工作正常,但仍获取 org.hibernate.hql.ast.QuerySyntaxException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9530969/