Estou com o seguinte problema:
Meu sistema de cadastro de Jogos possui 2 alguns atributos como (id, nome, descrição e plataforma). No caso, meu atributo plataforma e um enum.
Estou com problemas para cadastro um jogo passando um determinado enum.
Classe Jogo:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name = "id_jogo")
private int id;
@Column(nullable = false)
private String nome;
@Column(nullable = false)
private String descricao;
@Enumerated(EnumType.STRING)
private Plataforma plataforma;
public Jogo(){}
public Jogo(Jogo jogo) {
this.id = getId();
this.nome = getNome();
this.descricao = getDescricao();
this.plataforma = getPlataforma();
}
Enum Plataforma:
public enum Plataforma {
PC("PC"), ONE("ONE"), PS4("PS4");
private String descricao;
private Plataforma(String descricao) {
this.descricao = descricao;
}
}
JogoBean:
public class JogoBean implements Serializable{
private static final long serialVersionUID = 1L;
private Jogo jogo;
private JogoDAO jogoDAO;
public JogoBean(){
setJogo(new Jogo());
setJogoDAO(new JogoDAO());
}
public String cadastrar() {
getJogoDAO().cadastrar(getJogo());
limpaTela();
return "cadastraJogo.xhtml";
}
public void limpaTela(){
setJogo(null);
}
public Plataforma[] getPlataformas(){
return Plataforma.values();
}
Estou fazendo o cadastro de Jogo da seguinte forma:
<h:form class="form-label" id="cadastroJogo">
<div class="form-group row">
<label for="thread" class="col-md-12">Nome do Jogo:</label>
<div class="col-md-10">
<h:inputText value="#{jogoMB.jogo.nome}"
class="form-control" id="nomeJogo" />
</div>
</div>
<div class="form-group row">
<label for="thread" class="col-md-12">Descrição:</label>
<div class="col-md-10">
<h:inputText value="#{jogoMB.jogo.descricao}"
class="form-control" id="descricaoJogo" />
</div>
</div>
<div class="form-group row">
<label for="thread" class="col-md-12">Plataforma:</label>
<div class="col-md-10">
<h:selectOneMenu >
<f:selectItems value="#{jogoMB.plataformas}" />
</h:selectOneMenu>
</div>
</div>
<div class="text-center">
<h:commandButton action="#{jogoMB.cadastrar()}"
value="Cadastrar"
class="btn btn-primary btn-lg btn-rounded btn-shadow" />
</div>
</h:form>
O cadastro e realizado sem exceção porque o enum não e obrigatorio(por enquanto), porem ao cadastro ele não cadastra o enum.