Saya punya model Kategori Hibernasi:
@Entity
@Table(name = "category")
public class Category {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private long id;
@Column(name = "type")
private String type;
yang memiliki bidang tipe string. Saya juga punya enum Java yang mewakili jenis kategori:
public enum CategoryType {
INCOME, OUTCOME;
}
yang ingin saya gunakan sebagai pengganti tipe string. SQL menerima dua nilai berbeda dalam parameter varchar: baik CategoryIncome
atau CategoryOutcome
. Saya ingin kelas model Kategori menerima variabel enum - dan memetakannya ke string kapan pun hibernasi memintanya.
Apa itu mungkin?
@Converter(autoApply = true) public class CategoryTypeConverter implements javax.persistence.AttributeConverter <CategoryType, String>
@Enumerated(EnumType.STRING) public CategoryType getCategoryType() { return this.categoryType; }
.hibernate.ddl-auto=update
mode dan saya harus melepaskan tabel saya dan membiarkan hibernasi membuatnya lagi untuk mengubah enum saya dari int ke varchar. Semoga membantu seseorang dengan masalah serupa.Jawaban yang diterima tidak cukup untuk PostgreSQL . Saya melampirkan implementasi yang berhasil untuk saya:
https://stackoverflow.com/a/64021041/5279996
sumber