[quote=crebisobom]E como é o acesso
String permissao = Permissao.USUARIO
neste caso, permissao terio o valor “ROLE_USUARIO”???
[/quote]
Não, você vai ter uma referência a um tipo Permissao:
Permissao permissao = Permissao.USUARIO;
Quando quiser a representação em string:
String permissaoStr = Permissao.USUARIO.toString(); //ou permissao.toString()
Quando você usa um enum, você cria um tipo. É ele que você deve usar no seu código. Apenas use representações em String quando necessário (exibir, persistir, etc.).
[quote=crebisobom]
Vini, vi um post seu:
Nesete caso (na minha cabeça) ele me parece mais sensato no caso de constantes numéricas…Tipo se eu salvasse no banco de dados os Números, e o código java que traduziria (A interpretação se daria com o ENUM e suas constantes numéricas…
No caso, eu gostaria de saber a maneira mais adequada, em questões de legibilidade de codigo e boas praticas, enfim…
Estou usando SpringSecurity, e ele exige algo do tipo USER_“algumacoisa”, então teria que guardar esta informação no banco na forma de string…
Se puder me esclarecer isto… e obrigado até agora.[/quote]
Tá usando Hibernate/JPA para persistir? O padrão é persistir o ordinal do enum. O ordinal é o índice dele. No exemplo do Vini, ADMINISTRADOR tem índice 0, PROFESSOR 1 e USUARIO 2. O Hibernate mapearia isto para uma coluna de inteiros e armazenaria este valor. Na hora de recuperar ele atribuiria a Permissao de volta à entidade persistida. Uma outra opção é armazenar o nome do tipo, por exemplo, armazenar ADMINISTRADOR, PROFESSOR e USUARIO em forma de String.
Como é sua configuração do Spring Security? Onde vc precisa de uma representação em String?