但凡写过sql语句的人估计都曾经碰到过相似于Unknown column ‘xxx’ in ‘where clause’的问题。 单从字面理解,咱们很容易得出sql
列名不存在的结论,可是,不少时候起始并非因为列名出错形成的。而是因为拼凑sql语句时对字符类型数据没有用引号引发来形成的。ide
例如:一个hql语句:final String hql = "from ActiveCert ac where ac.issuerName="+issueName";spa
设置issueName值为ysy,则错误以下:
code
Unknown column
orm
‘ysy′ in ‘where clause’
sql中若是issueName是整型的倒不会出现什么错误,而若是sql中字符串类型必需要包含在引号内。
字符串
因此修改hql为:final String hql = "from ActiveCert ac where ac.issuerName='"+issueName+"'";it
则错误消失。。class