Hibernate異常: org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User]

Hibernate異常:org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User]

1、出現該錯誤的情況分析

1,配置文件沒有加載到hibernate的實體列表裏面

2,映射文件的字段與數據庫字段不一致,或者名稱不一致導致

hql 是 有專門的語法的,不完全同於sql。切記HQL是大小寫敏感的,這點不同於SQL。
……QuerySyntaxException…說的就是hql語法有問題,相信你在cmd中使用sql查詢中就經常見到下面錯誤

You have an error in your SQL syntax;

1.看是否忘記將hibernate的映射文件添加到Hibernate.cfg.xml(使用Hibernate時)或者applicationContext.xml中

2.檢查表中的字段和映射文件中的字段是否一一對應

3.檢查字段名是否使用了數據庫中的關鍵字

4.HQL語句是否正確

2、HQL對比SQL

 HQL: Hibernate 查詢語言Hibernate 配備了一種非常強大的查詢語言,這種語言看上去很像 SQL。但是不要被語法結構上的相似所迷惑,HQL 是非常有意識的被設計爲完全面向對象的查詢,它可以理解如繼承、多態和關聯之類的概念。

通常錯誤就在from 後面的tableName,sql語句中我們當然放的是tableName,而且大小寫可以隨便寫。但是HQL中,我們要在from 後面放對象(Object),比如我們建立了user表,User類。

錯誤查詢

String hql ="from user";
Query query=session.createQuery(hql);

正確查詢

String hql ="from User";
Query query=session.createQuery(hql);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章