【发布时间】:2017-08-23 10:30:02
【问题描述】:
例如我有这样的枚举
public enum Season {
WINTER(1), SPRING(10), SUMMER(50), FALL(100);
private int expectedVisitors;
private Season(int expectedVisitors) {
this.expectedVisitors = expectedVisitors;
}
public int printExpectedVisitors() {
return expectedVisitors;
}
}
并且季节是一种将存储在数据库中的字段。
@Column(name = "season")`
@Enumerated(EnumType.STRING)
private Season season;
但是我需要存储 int 1/10/100 而不是值 Winter。我应该写什么?有没有可能做这样的事情?
【问题讨论】:
-
我以前遇到过这种事情。只要记住如果这些值可能发生变化会发生什么。你想要哪些价值观?例如:如果在 2012 年秋季,期望值为 50,您希望该值返回为 50,还是显示值为 100(当前期望值)?这不会是当时的当前期望。您可能希望将枚举作为 setter,但如果您不希望它们更改,请提供一个 int 用于持久性和您的 getter。如果你使用枚举,并且值发生了变化,如果你试图返回一个枚举,你会遇到拉回旧数据的麻烦。
标签: java hibernate enums spring-data