获取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();
看到源代码
- Java / Hibernate JPA:InheritanceType.TABLE_PER_CLASS和ID
- 如何使用Spring 3配置JPA?
- java.lang.OutOfMemoryError:PermGen space Exception
- org.hibernate.PropertyValueException:not-null属性引用一对一关系中的null或transient值
- 在运行时更改实体的表名?
- Hibernate Native SQL Query在连接中检索多个实体
- JPA GROUP BY实体 – 这可能吗?
- 在分层Spring MVC Web应用程序中处理Hibernate Sessions的最佳方法
- 如何在使用Hibernate时将Serializable更改为String