Bom dia,
estou desenvolvendo uma aplicação básica em JPA + VRaptor para estudo.
Tenho uma entidata Gasto, com um atributo TipoPagamento (também uma entidade).
Fiz um formulário para adicionar um novo Gasto no banco, que tem um ComboBox para selecionar o TipoPagamento (À vista, Crédito ou parcelado).
O problema é que quando eu dou um “Enviar” e mando imprimir os dados do Gasto o TipoPagamento fica como null
Segue minha classe Gasto
@Entity
public class Gasto implements Serializable {
@Id
@GeneratedValue
@Column(name = "cod_gasto")
private Long id;
private double valor;
private Date compra;
private String detalhes;
@ManyToOne(cascade = CascadeType.ALL)
private TipoPagamento tipo;
public void setTipo(Long e) {
this.tipo = new TipoPagamento();
tipo.setId(e);
}
//Considerem todos os getters e setters
}
Classe tipo Pagamento
@Entity
public class TipoPagamento implements Serializable {
@Id
private Long id;
private String descricao;
public TipoPagamento() {}
public TipoPagamento(EnumTipoPagamento tipo) {
this.id = tipo.getId();
this.descricao = tipo.getDescricao();
}
public Long setId(Long e) {
this.id = e;
}
//Considerem os getters e setters
}
O EnumTipoPagamento
public enum EnumTipoPagamento {
A_VISTA(1L, "Pagamento à vista"), CREDITO(2L, "Pagamento no cartão de crédito"), PARCELADO(3L, "Pagamento parcelado");
private Long id;
private String descricao;
private EnumTipoPagamento(Long tipo, String descricao) {
this.id = tipo;
this.descricao = descricao;
}
//getters e setters para id e descricao
}
Formulário do JSP
<form action="gasto.adiciona.logic">
Valor: <input type="text" name="gasto.valor" /><br />
Data: <input type="text" name="gasto.data" /><br />
Tipo de pagamento:
<select name="gasto.tipo.id">
<option value="1">À vista</option>
<option value="2">Crédito</option>
<option value="3">Parcelado</option>
</select><br />
<text-area name="gasto.descricao"></text-area>
<input type="submit" value="Cadastrar" />
</form>
Não sei mais o que fazer, por isso recorro a vocês.
Agradeço desde já qualquer tipo de ajuda.
Abraços