我有一个用于用户和角色的实体:
@Entity
@Table(name="test")
public class Test implements Serialazable {
....
@Column(length = 25)
private String role;
.....
}
我想使用此Enum来保存可用的类型:
public enum Role implements GrantedAuthority {
ROLE_ADMIN, ROLE_CLIENT;
public String getAuthority() {
return name();
}
}
问题是我如何才能使用此Enum插入所选的当前角色,以及如何从数据库中获取值并填充Enum。
您会指导我如何执行此操作,因为这对我来说还不是很清楚?
答案 0 :(得分:0)
我举一个例子,您需要:
创建一个转换器:
@Converter(autoApply = true)
public class RoleConverter implements AttributeConverter<Role, String> {
@Override
public String convertToDatabaseColumn(Role role) {
return role.getRoleName();
}
@Override
public Role convertToEntityAttribute(String dbData) {
return Role.getFromShortName(dbData);
}
}
持久性提供程序将完成其余工作。
答案 1 :(得分:0)
在 JPA 中将枚举值映射到其数据库表示的最常见选项是使用 @Enumerated 注释。这样,我们可以指示 JPA 提供程序将枚举转换为其序数或字符串值。
这篇文章可以帮到你。