但凡寫過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