Opa…
Então, estou fazendo com que a loja do goodbuy agora possa reaalizar a compra dos produtos no carrinho de compras.
Pensei em algo simples, sem aumentar mto a complexidade… Só para testar mesmo…
Então o que eu fiz:
1 - Decidi persistir a classe Item direto no banco, apenas linquei cada Item a um usuario específico… então para fazer isto eis a classe:
//imports
@Entity
public class Item {
@Id @GeneratedValue
private Long id;
@ManyToOne
private Usuario usuario;
@OneToOne
private Produto produto;
private Integer quantidade;
//getters e setters
}
2 - Criei um método no Carrinho para limpar os dados depois que efetura a compra:
public void limpar() {
itens.clear();
total = 0.0;
}
3 - Criei, no CarrinhoController um novo recurso, “comprar”:
@Restrito
@Post @Path("/comprar")
public void comprar() throws Exception{
for(Item item : carrinho.getItens()){
itemDao.salvar(item);
}
carrinho.limpar();
result.redirectTo(ProdutosController.class).lista();
}
4 - Criei um botão no view do carrinho pra poder efetuar a compra:
<c:if test="${usuarioWeb.logado}">
<form action="<c:url value="/comprar"/>" method="post">
<input type="submit" value="Comprar">
</form>
</c:if>
5 - Criei o campo do tipo hidden pra pegar o id do usuario [acho que esta parte esta incorreta]
<input type="hidden" name="item.usuario.id"
value="${usuarioWeb.usuario.id}"/>
Pronto, acho q nao esqueci de nada…
Qual o problema?
Eis o que é salvo no banco de dados:
+----+------------+------------+------------+
| id | quantidade | produto_id | usuario_id |
+----+------------+------------+------------+
| 1 | 10 | 1 | NULL |
| 2 | 10 | 7 | NULL |
| 3 | 5 | 1 | NULL |
| 4 | 5 | 7 | NULL |
+----+------------+------------+------------+
Não esta pegando o ID do usuario
Acho que o erro está no item 5,
mas não sei…
Podem me ajudar?
Abraços