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

JSP 配合 Hibernate 保存自增主鍵表時的配置錯誤排查

     編輯:程式設計綜合問答

現象描述

JSP 頁面保存帶有自增主鍵的表時拋出異常,雖然代碼未顯式賦值 ID,但 Hibernate 報錯提示主鍵生成策略錯誤。

錯誤配置

<id name="id" column="id">
    <generator class="assigned"/> <!-- 錯誤:手動賦值策略 -->
</id>

正確配置

<id name="id" column="id">
    <generator class="native"/> <!-- 正確:自適應底層數據庫自增策略 -->
</id>

原理解析

  • assigned:要求應用程序在保存前手動設置 ID,適用於自然主鍵或業務主鍵。
  • native:根據底層數據庫自動選擇 identity (MySQL/SQL Server)、sequence (Oracle/PostgreSQL) 或 hilo,實現跨數據庫的自增主鍵透明支持。

補充建議

  • 若使用註解配置:@GeneratedValue(strategy = GenerationType.IDENTITY) (MySQL) 或 GenerationType.AUTO。
  • 確保數據庫表定義中 ID 列設置為 AUTO_INCREMENT (MySQL) 或 IDENTITY (SQL Server)。
  • 避免在業務代碼中手動設置自增 ID,交由持久層框架管理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved