获取org.hibernate.hql.ast.QuerySyntaxException虽然它工作正常的SQL服务器?

我有下面的代码片段。 它在第3行抛出exception,但查询工作正常managemnt studio(sql server 2005)

String query = "select * from user where userId=" + profileId + " and spaceName='" + spaceName + "'"; Session session = HibernateUtil.getSession(); List personDetailsData = new ArrayList( session.createQuery(query).list()); //line 3 

这是例外

org.hibernate.hql.ast.QuerySyntaxException:意外令牌:*靠近第1行,第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 

并在查询中使用参数,而不是直接值。

当您使用sql查询时,您必须创建一个sql查询,如

 sess.createSQLQuery("SELECT * FROM CATS").list(); 

看到源代码