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

时间:2012-03-02 09:38:38

标签: java hibernate

我有以下代码段。它在第3行引发异常,但查询工作正常managemnt 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

这是例外

  

org.hibernate.hql.ast.QuerySyntaxException:意外令牌:*附近   第1行第8列[select * from user userid = 216 and   SPACENAME = 'DIG']

在管理sudio运行正常时,我无法弄清楚查询的问题是什么?

2 个答案:

答案 0 :(得分:3)

这是本机查询,而不是hql。 如果您已将表字段映射到您需要的类字段

session.createSQLQuery(query, PersonDetailsData.class).list();

或创建hql类型查询 -

select p from PersonDetailData p where p.userId = :userId and p.spaceName =:spaceName

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

答案 1 :(得分:1)

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

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

查看来源source