2011-02-08 51 views
0

當我運行此查詢:select emp.emp_name as "name" from emp order by name. 這從sqldeveloper運行良好。但通過java,使用休眠會話,這給了一個sql:invalid column error. 爲什麼這種行爲的差異?
編輯:錯誤說無效列:名稱(大寫),而不是名稱。我會嘗試這個辦法:用「名」從EMP爲了SQl無效列錯誤。在SQL開發工程中,給出錯誤在java

選擇emp.emp_name爲「名」

+1

您使用的是什麼RDBMS? – BoltClock 2011-02-08 21:58:24

+0

您是否試圖將其作爲Hibernate查詢語言(HQL)查詢來執行?如果是這樣,它需要重寫爲使用類和屬性名稱而不是表和列名稱。 – 2011-02-08 22:03:11

回答

0

請參閱我的編輯。它解決了這個問題。

4

命名爲「名」可能是一個保留關鍵字。 sql開發人員正在寬容。嘗試

select emp.emp_name as [name] from emp order by [name] 

或更好,但就是不使用保留的關鍵字,甚至可能保留關鍵字。

即使這不是問題(它可能不取決於您的平臺/ rdbms),您應該避免列名稱,如「type」,「DateTime」等,僅用於代碼可讀性,保留言辭不一致。