現在、次のように機能する Hibernate マッピングがあります。
Table 'TASK':
id int, name varchar, status varchar
列挙型
public enum TaskStatus {
INVALID, INITIAL, IN_PROGRESS, PAUSED, DONE;
}
タイプ
@Entity
public class Task {
@Column(name = "STATUS")
@Enumerated(EnumType.STRING)
private TaskStatus status;
public TaskStatus getStatus() {
return status;
}
public void setStatus(TaskStatus status) {
this.status = status;
}
}
これを変更して、考えられるすべてのステータスを次のような 1 つのテーブルに保存したいと考えています。
Table 'TASK_STATUS':
id int, status varchar
Table 'TASK':
id int, name varchar, status_id int foreign key
Hibernate Annotations を使用して列挙型のマッピングを定義し、それを Task Type にマップする方法は可能ですか。私はまだ Java 実装を上記のようにしたい (int プロパティの代わりに TaskStatus プロパティを持つ) ので、快適に使用できます。
myTask.setStatus(TaskStatus.DONE);