簡體   English   中英

將枚舉映射到休眠中的字符串

[英]Mapping enum to string in 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 要求它時以某種方式將其映射到字符串。

是否有可能?

是的,有可能。 它應該是:

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

接受的答案對於PostgreSQL是不夠的。 我附上了對我有用的實現:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM