Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não consigo mudar itens dos produtos

Eu queria adicionar mais atributos para os produtos do projeto do curso (nome, descrição, valorTotal, valorFrete, quantidade) mas nao sei aonde eu mudo o banco de dados para fazer essa alteração, gostaria de rodar em um mysql local, e poder alterar essas coisas dos produtos. Alguem sabe como faço isso? Tentei criar uma tabela direta no banco de dados mas nao funcionou. tentei alterar o arquivo vraptor-produtos.log mas tbm nao deu certo

4 respostas

Basta que você adicione as informações na classe que, dada a configuração do hibernate que você está usando, ela já deve aplicar as mudanças no banco também.

Nao da certo, eu altero a class, mas aí no navegador diz que a pagina nao foi encontrada, vou anexar meus codigos.. E se eu tiro os getters e setters no produto.java ele volta a encontrar o jsp, mas.

package br.com.blackmarket.controller;

import java.util.List;

import javax.persistence.EntityManager;

import br.com.blackmarket.dao.ProdutoDao;
import br.com.blackmarket.model.Produto;
import br.com.blackmarket.util.JPAUtil;
import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Path;

@Controller
public class ProdutoController {

    @Path("/")
    public void inicio(){}

    @Path("/produto/lista")
    public List<Produto> lista(){
        EntityManager em = JPAUtil.criaEntityManager();
        ProdutoDao dao = new ProdutoDao(em);
        return dao.lista();
    }
}
package br.com.blackmarket.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;


@Entity
public class Produto {

    @GeneratedValue @Id
    private Long id;

    private String nome;

    private String descricao;

    private Integer quantidade;

    private Double valor;

    private Double valorFrete;


    public Produto() {
    }

    public Produto(String nome, String descricao, Integer quantidade , Double valor, Double valorFrete) {
        this.nome = nome;
        this.descricao = descricao;
        this.quantidade = quantidade;
        this.valor = valor;
        this.valorFrete = valorFrete;

    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Double getValorFrete() {
        return valorFrete;
    }

    public void setValorFrete(Double valorFrete) {
        this.valorFrete = valorFrete;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Double getValor() {
        return valor;
    }

    public void setValor(Double valor) {
        this.valor = valor;
    }

    public Integer getQuantidade() {
        return quantidade;
    }

    public void setQuantidade(Integer quantidade) {
        this.quantidade = quantidade;
    }

}
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../materialize/css/libs/materialize.min.css">
<link rel="stylesheet" type="text/css" href="../../materialize/css/libs/google-fonts.css">
<title>Produtos</title>
</head>
<body>
    <h1>PRODUTOS</h1>
    <table>
        <thead>
            <tr>
                <th>NOME</th>
                <th>DESCRICAO</th>
                <th>QUANTIDADE</th>            
                <th>VALOR</th>            
                <th>VALOR FRETE</th>    
            </tr>
        </thead>
        <tbody>
            <c:forEach items="${produtoList}" var="produto">
                <tr>
                    <td>${produto.nome}</td>            
                    <td>${produto.decricao}</td>            
                    <td>${produto.quantidade}</td>            
                    <td>${produto.valor}</td>            
                    <td>${produto.valorFrete}</td>            
                </tr>
            </c:forEach>
        </tbody>
    </table>
</body>
</html>

o erro do tomcat no navegador é esse. Lembrando que o link funcionava perfeitamente antes de eu alterar o arquivo produto.java

HTTP Status [404] – [Not Found]

Type Status Report

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

solução!

Ja achei o erro, faltou colocar o contrutor como vazio

    @Deprecated
    public Produto() {
        this(null, null, null, null, null);
    }