在 Hibernate 實體中定義枚舉時,確保持久化機制與資料庫列的資料類型一致非常重要。在您的情況下,資料庫列出「性別」被定義為值為「男性」和「女性」的枚舉類型。
您遇到的問題可能是由於預期的資料類型之間不匹配造成的Hibernate 和資料庫列的實際資料類型。預設情況下,Hibernate 希望枚舉值保留為整數,但您的資料庫列被定義為枚舉。
要解決此差異,您可以使用以下命令明確指示 Hibernate 將枚舉保留為字串值: @Column(columnDefinition) 註解。此註釋定義用於建立列的 DDL(資料定義語言)。在您的情況下,您可以將列定義指定為:
@Column(columnDefinition = "enum('male','female')")
此外,您必須使用@Enumerated(EnumType.STRING) 註解枚舉字段,以指示枚舉應保留為字串值。
此更新的程式碼片段應該可以解決該問題:
@Column(columnDefinition = "enum('male','female')")
@Enumerated(EnumType.STRING)
private Gender gender;
透過明確指定列定義和枚舉類型,您可以強制Hibernate 將枚舉保留為字串,以匹配資料類型您的資料庫列。這將防止您遇到的錯誤並確保枚舉資料的正確持久性。
以上是如何使用 @Column(columnDefinition) 和 @Enumerated(EnumType.STRING) 在 Hibernate 中將枚舉保留為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!