我目前有一个 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;
}
}
我想更改它以将所有可能的状态保存在一个表中,例如:
Table 'TASK_STATUS':
id int, status varchar
Table 'TASK':
id int, name varchar, status_id int foreign key
是否可以使用 Hibernate Annotations 定义枚举类型的映射以及将其映射到任务类型的方法。我仍然希望 Java 实现看起来像上面的那个(具有 TaskStatus 属性而不是 int 属性),所以我可以舒适地使用:
myTask.setStatus(TaskStatus.DONE);