2016-12-12 12 views
0

ステータス、タイプなどの値を格納するために使用する必要があるエンティティについては?Enum、intまたはStringで値を格納するHibernate

私は自分のステータス、種類などを定義しています。多くの定義済みのシステムデータは、私のシステムに列挙型で定義されています。私はシステムを大きなデータ・データベースに移行する予定です。それで、これらのデータを保存しながら、私は何をすべきですか?

  • これは議論の余地がありますので、@Convertは使用できません。
  • 将来の重要な開発であり、システムでは列挙型を更新する必要があるため、序数は使用できません。

  • 私の定義済みのenumは既に存在し、各enumにidを割り当てることができます。したがって、必須エンティティはintとして定義する必要があります。 (列挙型として管理し、int idとして保存する)

答えて

0

これを試してみてください。 intとして、データベース内の

public Status getStatus() { 
    return Status.fromCode(status); 
} 

public void setStatus(Status status) { 
    this.status = status.getCode(); 
} 

や店舗のステータス:

public enum Status { 
    NORMAL(0), BANNED(1); // modify it 

    int code; 

    Status(int code) { 
     this.code = code; 
    } 

    public static Status fromCode(int code) { 
     switch (code) { 
      case 0: 
       return NORMAL; 
      case 1: 
       return BANNED; 
      default: 
       throw new IllegalArgumentException(); 
     } 
    } 

    public int getCode() { 
     return code; 
    } 
} 

その後、あなたは「ステータス」という名前のオブジェクトの変数にステータスを格納しますと言ってみましょう。

関連する問題