如何在mysql中计算java enum

时间:2016-08-04 14:54:36

标签: java mysql enums

我有枚举类角色。我想将这些值存储在表角色的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)。

0 个答案:

没有答案