但凡寫過sql語句的人估計都曾經碰到過類似於Unknown column ‘xxx’ in ‘where clause’的問題。 單從字面理解,我們很容易得出列名不存在的結論,但是,很多時候起始並不是由於列名出錯造成的。而是由於拼湊sql語句時對字符類型數據沒有用引號引起來造成的。
例如:一個hql語句:final String hql = "from ActiveCert ac where ac.issuerName="+issueName";
設置issueName值為ysy,則錯誤如下:
Unknown column
‘ysy′ in ‘where clause’
sql中如果issueName是整型的倒不會出現什么錯誤,而如果sql中字符串類型必須要包含在引號內。
所以修改hql為:final String hql = "from ActiveCert ac where ac.issuerName='"+issueName+"'";則錯誤消失。。