我有一个类别hibernate模型:
@Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "type") private String type;
其中有一个类型字符串字段。我也有一个Java枚举,它表示类别的类型:
public enum CategoryType { INCOME, OUTCOME; }
我想用它代替字符串类型。SQL在varchar参数中接受两个不同的值:CategoryIncome或CategoryOutcome。我希望Category模型类接受一个枚举变量- 每当hibernate要求它时,都以某种方式将其映射到字符串。
CategoryIncome
CategoryOutcome
可能吗?
是的,有可能。它应该是:
@Enumerated(EnumType.STRING) @Column(name = "category_type") private CategoryType categoryType;