java - 使用 Enum 表示用户角色

标签 java hibernate jpa enums spring-data-jpa

我有这个用户和角色实体:

@Entity
@Table(name="test")
public class Test implements Serialazable {
    ....
    @Column(length = 25)
    private String role;
    ..... 
}

我想使用此枚举来保存可用类型:

public enum Role implements GrantedAuthority {
  ROLE_ADMIN, ROLE_CLIENT;

  public String getAuthority() {
    return name();
  }

}

问题是我如何使用此枚举来插入所选的当前角色,并从数据库中获取值并填充枚举。

你能指导我如何实现这个吗,因为我不太清楚?

最佳答案

我给你举个例子,你需要:

  • 创建一个枚举类
  • 创建转换器:

    @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);
        }
    }
    

持久性提供者将完成剩下的工作。

关于java - 使用 Enum 表示用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62352945/

相关文章:

java - Gitlab 批准 merge 请求

java - 为什么不能执行 Set <Object> = new TreeSet <String>

java - HibernateDaoSupport 中的 HQL

java - 可以为多个数据源配置 persistence.xml 吗?

java - 如何在 bazel 构建中调试 java_library 规则?

java - 类构造函数如何具有同一类的参数?

java - 单个实体的多对多关系 - Hibernate

hibernate - Dozer - 创建父对象的引用

mysql - 使用 jpa 进行内连接和子查询

java - @Repository 接口(interface)中的 @Query 给出 : : line 1:106: expecting EOF, 找到 ')'