【发布时间】:2019-03-22 15:49:38
【问题描述】:
@Entity
public class User{
@Id()
private int id;
private UserStatus userStatus;
}
public enum Country{
Active, Pending, Blocked;
}
我想用里面的值创建一个 UserStatus 表。
第一种方法是将@Enumerated 与String 或Integer 一起使用。但是,我不希望这样,因为这些枚举值可以更改。
另一种方法是在 UserStatus 类上声明 @Entity。添加 ID 和值。保持多对一映射。这样,用户将拥有引用的外键作为用户状态。
如果我们想将枚举值保留在表中,这是最好的方法还是有其他方法? 我们可以在 Spring Boot 中生成包含枚举值的 Gender 表吗?
[ UserStatus 枚举只是一个示例。主要思想是了解创建表的最佳方法及其价值。]
我很高兴能就此提出一些观点。
【问题讨论】:
-
性别表?真的吗?
-
如果我们使用@Enumerated.Ordinal/String,那么它将对应的值保存到列中。但这不是最好的方法。
-
我已更新问题以获得更多说明
-
@Pino,当您需要将性别映射到代词和文章时,性别表很有用,因为语言确实会按性别改变它们。它有助于构建更自然的文本。如果弹出一个新的性别,你只需要改变一个地方并开始使用它,根本不需要改变代码。您甚至可以让人们使用这样的表格来决定他们想要什么性别/文章/代词,并让算法在 x 量数据后决定新的事实性别并改进显示的默认选择(有点像 ReCaptcha 过去帮助数字化书籍的方式)
标签: java spring hibernate jpa enums