轉自:http://blog.sina.com.cn/s/blog_6870d1e00100k7fo.html
但凡寫過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+"'";則錯誤消失。
還有一種可能就是真的列名出錯了,這時候先檢查表名是否符合,字段名是否符合,在某些系統和軟件環境下的大小寫檢測.