但凡寫過sql語句的人估計都曾經碰到過類似于Unknown column ‘xxx’ in ‘where clause’的問題。 單從字面了解,我們很容易得出
列名不存在的結論,但是,很多時候起始并不是由于列名出錯造成的。而是由于拼湊sql語句時對字元類型資料沒有用引号引起來造成的。
例如:一個hql語句:final String hql = "from ActiveCert ac where ac.issuerName="+issueName";
設定issueName值為ysy,則錯誤如下:
<code>Unknown column ‘ysy′ in ‘where clause’</code>
sql中如果issueName是整型的倒不會出現什麼錯誤,而如果sql中字元串類型必須要包含在引号内。
是以修改hql為:final String hql = "from ActiveCert ac where ac.issuerName='"+issueName+"'";
則錯誤消失。。
本文轉自 藝晨光 51CTO部落格,原文連結:http://blog.51cto.com/ycgit/1831634,如需轉載請自行聯系原作者