web-dev-qa-db-ja.com

列挙型を休止状態の文字列にマッピングする

Category 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 enumを持っています:

public enum CategoryType {
    INCOME, OUTCOME;
}

文字列型の代わりに使用したいと思います。 SQLは、CategoryIncomeまたはCategoryOutcomeの2つの異なる値をvarcharパラメーターで受け入れます。 Categoryモデルクラスに列挙型変数を受け入れて、hibernateから要求されたときに文字列になんらかの方法でマッピングするようにします。

出来ますか?

79
ducin

はい、可能です。そのはず:

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