Senhores, bom dia.
Estou com um problema a fazer a chamada de uma controller pelo arquivo .jsp, informa que o id é nulo sendo que está tudo certo referente ao banco e a questão da anotação @generatedValue na classe Produto.
Banco:
Controllers:
@RequestMapping("desabilitarProduto")
public void desabilitaProd(Produto produto){
ProdutoDAO dao = new ProdutoDAO();
dao.desativarProduto(produto);
}
@RequestMapping("ativarProduto")
public void ativaProduto(Produto produto) {
ProdutoDAO dao = new ProdutoDAO();
dao.ativarProduto(produto);
}
.JSP
<c:forEach var="produto" items="${dao.listaProdutos}">
<tr>
<td>${produto.nome}</td>
<td>${produto.valor}</td>
<td>${produto.descricao }</td>
<c:if test="${produto.status == false}">
<td style="color: red; font-weight: bold;">Produto Desativado</td>
</c:if>
<c:if test="${produto.status != false}">
<td style="color: green; font-weight: bold;">Produto
Habilitado</td>
</c:if>
<td>${produto.quantidade}</td>
<td><a href="ativarProduto">Habilitar</a> | <a href="desabilitarProduto">Desabilitar</a></td>
</tr>
</c:forEach>
Classe Produto:
package br.com.Muambyte.produto;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import br.com.Muambyte.pedidoProduto.PedidoProduto;
@Entity
public class Produto implements Serializable{
private static final long serialVersionUID = 1L;
//MEMBROS
@Id @GeneratedValue
private Long produto_id;
@Column(length=30,nullable=false,unique=true)
private String nome;
@Column(nullable=false)
private double valor;
@Column(nullable=false,length=200)
private String descricao;
@Column(columnDefinition="bit default 0")
private boolean status;
@Column(nullable=false)
private int quantidade;
Classe ProdutoDAO:
//HABILITA PRODUTO
public void ativarProduto(Produto pProduto){
EntityManager con = ConnectionFactory.getConnection();
pProduto = this.getProdutoID(pProduto.getProduto_id());
pProduto.setStatus(true);
try{
con.getTransaction().begin();
con.merge(pProduto);
con.getTransaction().commit();
}finally{
con.close();
}
}
//DESABILITA PRODUTO
public void desativarProduto(Produto pProduto){
EntityManager con = ConnectionFactory.getConnection();
pProduto.setStatus(false);
try{
con.getTransaction().begin();
con.merge(pProduto);
con.getTransaction().commit();
}finally{
con.close();
}
}