Hibernate 中的枚舉:在MySQL 資料庫中保留枚舉類型
在要映射到資料庫的實體中定義枚舉字段時,開發人員當Hibernate 期望整數資料類型而枚舉列在資料庫中定義為枚舉時,可能會遇到問題。要解決此衝突,必須明確通知 Hibernate 將列視為枚舉而不是整數。
在給定的範例中,已建立一個列舉「com.mydomain.myapp.enums.Gender」來表示「人」實體的「性別」屬性。但是,嘗試在資料庫中保留此枚舉類型會導致錯誤:「MyApp.Person 中性別列的列類型錯誤。發現:枚舉,預期:整數。」
要解決此問題,Hibernate 必須明確提供正確的列定義。這可以透過使用「@Column」和「@Enumerated」註釋對「gender」欄位進行註釋,將列定義指定為枚舉並將枚舉類型指定為字串來實現。這是一個例子:
<code class="java">@Column(columnDefinition = "enum('MALE','FEMALE')") @Enumerated(EnumType.STRING) private Gender gender;</code>
透過明確提供此列定義,Hibernate 將不再嘗試猜測資料類型。這種方法可確保枚舉類型保留在 MySQL 資料庫中,使映射能夠正確運作。
以上是如何使用 Hibernate 保留 MySQL 資料庫中的枚舉類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!