我正在尝试根据日期查询数据库中的数据列表。
这是我的代码:
@Override
public List<CoursChange> listeTauxChange(Date datJourCchn) {
Query q = sessionFactory.getCurrentSession().createQuery(
"from CoursChange c where c.datJourCchn="+datJourCchn);
return q.list();
}
错误是:
org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:4月第1行第81列[来自com.gtec.GestionChangeDevise.entity.CoursChange c其中c.datJourCchn = Mon Apr 18 00:00:00 WAT 2016]
这是如何引起的?如何解决?
答案 0 :(得分:3)
首先,不要通过将其与字符串化参数值连接来参数化查询。在查询字符串中使用named或positioned参数声明,然后将参数值设置为Query对象。
EXEC xp_cmdshell 'bcp "EXEC tempdb.dbo.usp_myProc" queryout "c:\temp\Courses.xml" -S (local) -T -w -r'
答案 1 :(得分:-1)
你错过"from CoursChange c where c.datJourCchn = \"" + datJourCchn + "\""
来包装datJourCchn
{{1}}
[来自com.gtec.GestionChangeDevise.entity.CoursChange c,其中c.datJourCchn = Mon Apr 18 00:00:00 WAT 2016]的第81列是一个空格,导致错误的查询字符串。