當我運行此查詢:select emp.emp_name as "name" from emp order by name.
這從sqldeveloper運行良好。但通過java,使用休眠會話,這給了一個sql:invalid column error.
爲什麼這種行爲的差異?
編輯:錯誤說無效列:名稱(大寫),而不是名稱。我會嘗試這個辦法:用「名」從EMP爲了SQl無效列錯誤。在SQL開發工程中,給出錯誤在java
選擇emp.emp_name爲「名」
當我運行此查詢:select emp.emp_name as "name" from emp order by name.
這從sqldeveloper運行良好。但通過java,使用休眠會話,這給了一個sql:invalid column error.
爲什麼這種行爲的差異?
編輯:錯誤說無效列:名稱(大寫),而不是名稱。我會嘗試這個辦法:用「名」從EMP爲了SQl無效列錯誤。在SQL開發工程中,給出錯誤在java
選擇emp.emp_name爲「名」
請參閱我的編輯。它解決了這個問題。
命名爲「名」可能是一個保留關鍵字。 sql開發人員正在寬容。嘗試
select emp.emp_name as [name] from emp order by [name]
或更好,但就是不使用保留的關鍵字,甚至可能保留關鍵字。
即使這不是問題(它可能不取決於您的平臺/ rdbms),您應該避免列名稱,如「type」,「DateTime」等,僅用於代碼可讀性,保留言辭不一致。
您使用的是什麼RDBMS? – BoltClock 2011-02-08 21:58:24
您是否試圖將其作爲Hibernate查詢語言(HQL)查詢來執行?如果是這樣,它需要重寫爲使用類和屬性名稱而不是表和列名稱。 – 2011-02-08 22:03:11