将enum映射到hibernate中的字符串

时间:2013-04-13 13:32:25

标签: java hibernate enums

我有一个分类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参数中接受两个不同的值:CategoryIncomeCategoryOutcome。我希望Category模型类接受一个枚举变量 - 并在hibernate请求时以某种方式将其映射到字符串。

有可能吗?

2 个答案:

答案 0 :(得分:150)

是的,是可能的。它应该是:

@Enumerated(EnumType.STRING)
@Column(name = "category_type")
private CategoryType categoryType;

答案 1 :(得分:1)

对于 PostgreSQL ,接受的答案还不够。我附上对我有用的实现:

https://stackoverflow.com/a/64021041/5279996