首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Hibernate User is not mapped:實體類註解 @Entity 缺失或包掃描路徑錯誤

     編輯:程式設計綜合問答

現象

`session.createCriteria(User.class)` 正常,`session.createQuery("from User")` 報 `User is not mapped`。

原因

  • HQL/JPQL 查詢使用**實體類名**(`User`),而非表名。要求類被 **Hibernate 識別為實體**。
  • 常見原因:
    ① 實體類缺少 `@Entity` 註解。
    ② `hibernate.cfg.xml` / `persistence.xml` 中 `` 或 `` **包路徑配置錯誤**,導致實體未被掃描。
    ③ 實體類未編譯/未打包進 classpath(如 Maven 多模塊依賴缺失)。

修正


// 1. 實體類
@Entity
@Table(name = "t_user")
public class User { ... }

// 2. 配置掃描包(Spring/Hibernate)
com.yourpackage.entity

// 或 XML 映射

驗證

  • 啟動時日誌應顯示 `Binding entity from annotated class: com.yourpackage.entity.User`。
  • 無該日誌 → 掃描路徑漏掃。

參考

Hibernate User is not mapped 完整排查

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved