我有枚举类角色。我想将这些值存储在表角色的mysql DB中。
public enum Role {
ADMIN,
USER,
TRAINER
}
表格角色
id role
1 ADMIN
2 USER
3 TRAINER
我使用以下代码进行表映射
@Enumerated(EnumType.ORDINAL)
@Column(name = "role_id")
private Role role;
表用户
create TABLE users(
id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(30) NOT NULL,
email VARCHAR(20),
password VARCHAR(20),
registered TIMESTAMP DEFAULT now(),
role_id INTEGER UNSIGNED NOT NULL,
enabled BOOL DEFAULT TRUE,
FOREIGN KEY (role_id) REFERENCES roles(id)
)ENGINE=INNODB;
但是在Java中,enum序号从0开始,所以0 = ADMIN,1 = USER,2 = TRAINER,当我尝试设置用户Role.ADMIN时,我收到一个异常,因为DB中没有带有这样数字的元素( 0)。