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

Erro ao Persistir Entidade

Olá Boa tarde, baseado no curso de JavaEE eu decidi criar um projeto utilizando tudo que foi aprendido, porém , eu configurei o stadalone-full.xml, o persistence.xml e quando eu vou salvar a Entidade ele me joga essa Exception default task-6) java.lang.IllegalArgumentException: Unknown entity: org.jboss.as.jpa.container.TransactionScopedEntityManager

Segue o Código da Entidade

package br.com.app.loja.models;

import java.io.Serializable;
import java.math.BigDecimal;

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

@Entity
public class Produto implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;

    private String nome;
    private BigDecimal peso;
    private String descricao;

    @OneToOne
    private TipoMaterial tipoMaterial;

    private BigDecimal valor;
    private String capaPath;


    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public BigDecimal getPeso() {
        return peso;
    }
    public void setPeso(BigDecimal peso) {
        this.peso = peso;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public BigDecimal getValor() {
        return valor;
    }
    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }
    public String getCapaPath() {
        return capaPath;
    }
    public void setCapaPath(String capaPath) {
        this.capaPath = capaPath;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((id == null) ? 0 : id.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Produto other = (Produto) obj;
        if (id == null) {
            if (other.id != null)
                return false;
        } else if (!id.equals(other.id))
            return false;
        return true;
    }
    public TipoMaterial getTipoMaterial() {
        return tipoMaterial;
    }
    public void setTipoMaterial(TipoMaterial tipoMaterial) {
        this.tipoMaterial = tipoMaterial;
    }



}

o DAO


package br.com.app.loja.daos;

import java.io.Serializable;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import br.com.app.loja.models.Produto;

public class ProdutoDAO implements Serializable {

    private static final long serialVersionUID = 1L;

    @PersistenceContext
    private EntityManager manager;

    public void salvar(Produto produto) {
        this.manager.merge(manager);
    }


    public List<Produto> buscaTodos() {
        return this.manager
                        .createQuery("select p from Produto p", Produto.class)
                        .getResultList();
    }

    public Produto buscaPorId(Integer id) {
        return this.manager.find(Produto.class, id);
    }
}

O Bean ou Controller O ModelView é um Esteriotipo do CDI

@ModelView
public class AdminProdutoBean implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    private JSFUtil jsfUtil;
    @Inject
    private Produto produto;
    @Inject
    private ProdutoDAO produtoDAO;
    @Inject
    private TipoMaterialDAO tipoMaterialDAO;

    @Transactional
    public void salvar() {
        try {

            produtoDAO.salvar(produto);
        }catch(Exception e) {
            System.out.println(e);
            jsfUtil.addErrorMessage("Não foi possivel salvar o produto");
        }
    }

    public List<TipoMaterial> getTiposMaterial() {

        return tipoMaterialDAO.buscaTodos();
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public Produto getProduto() {
        return produto;
    }


}
2 respostas
solução!

Boa tarde Cleusa, na linha abaixo, dentro do DAO você está passando o manager para ser persistido ao invés do produto.

public void salvar(Produto produto) {
        this.manager.merge(manager);
    }

Abraços!

kkkk, nossa desculpe, como não pude ver, obrigado pela ajuda!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software