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。AUTO_INCREMENT (MySQL) 或 IDENTITY (SQL Server)。