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

Hibernate MappingException:表名寫成 t-user 導致找不到實體

     編輯:程式設計疑難解答

Hibernate 映射檔或註解中,表名若寫成 t-user (含連字號) 會報 MappingException: Table not found,因資料庫識別符通常不允許連字號,或 Hibernate 解析時將其視為減法運算。

錯誤與修正

<!-- 錯誤 -->
<class name="User" table="t-user"> ... </class>

<!-- 正確 -->
<class name="User" table="t_user"> ... </class>

或註解式:

@Entity
@Table(name = "t_user") // 底線而非連字號
public class User { ... }

避坑指南

  • 資料庫表名、欄位名統一用 蛇形命名 (snake_case):t_user, create_time。
  • Hibernate hibernate.cfg.xml 可設定 hibernate.implicit_naming_strategy 自動駝峰轉底線。
  • 若舊資料庫已有連字號表名,必須在映射中用反引號/雙引號轉義:table="`t-user`" (MySQL) 或 table="\"t-user\"" (PostgreSQL),但強烈建議重命名表。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved