Erro no código Java

[TopLink Warning]: 2011.12.03 10:16:27.401–UnitOfWork(16946633)–Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: ‘NaN’ is not a valid numeric or approximate numeric value
Error Code: 0
Call: UPDATE produto SET TOTAL = ?, ESTOQUE = ?, CUSTOMEDIOPRODUTO = ? WHERE (CODIGOPRODUTO = ?)
bind => [NaN, 0, NaN, 1]
Query: UpdateObjectQuery(br.com.ControleDeEstoqueSicredi.View.Produto[codigoproduto=1])

Ola bom dia estou com o seguinte erro acima, será que alguém poderia me ajudar?

vc recebe os dados a partir do Javascript? Você está enviando para a consulta, em Total e CustoMedio, “NaN” (Not a Number). Verifica os valores que você está passando como parâmetro.

Através deste código eu faço as entradas e as saídas do estoque, olha o código abaixo se está certo.

    produtoQuery = entityManager.createNamedQuery("Produto.findByCodigoproduto");
    produtoQuery.setParameter("codigoproduto", detalhesaida.getDetalhesaidaPK().getCodigoproduto());
    List<Produto> data = produtoQuery.getResultList();
    
  

    data.get(0).setEstoque(data.get(0).getEstoque()-detalhesaida.getQuantidadedetalhesaida());
    data.get(0).setCustomedioproduto((data.get(0).getTotal()-detalhesaida.getTotaldetalhesaida())/data.get(0).getEstoque());
    data.get(0).setTotal(data.get(0).getCustomedioproduto()*data.get(0).getEstoque());

cara,

seu erro ta ai

'NaN' is not a valid numeric or approximate numeric value 

vc ta atribuindo para uma coluna do tipo numero, ‘NaN’

t+

Como eu faço para sulucionar esse erro?

cara,

faz um debug no seu codigo e pq ta chegando esses valores,
posta ai seu entidade Produto.

t+

    produtoQuery = entityManager.createNamedQuery("Produto.findByCodigoproduto");
    produtoQuery.setParameter("codigoproduto", detalhesaida.getDetalhesaidaPK().getCodigoproduto());
    List<Produto> data = produtoQuery.getResultList();
    
  

    data.get(0).setEstoque(data.get(0).getEstoque()-detalhesaida.getQuantidadedetalhesaida());
    data.get(0).setCustomedioproduto((data.get(0).getTotal()-detalhesaida.getTotaldetalhesaida())/data.get(0).getEstoque());
    data.get(0).setTotal(data.get(0).getCustomedioproduto()*data.get(0).getEstoque());

sua classe Produto

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package br.com.ControleDeEstoqueSicredi.bean;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
*

  • @author Diego
    */
    @Entity
    @Table(name = “produto”,schema = “”)
    @NamedQueries({@NamedQuery(name = “Produto.findByCodigoproduto”, query = “SELECT p FROM Produto p WHERE p.codigoproduto = :codigoproduto”), @NamedQuery(name = “Produto.findByCodigobarras”, query = “SELECT p FROM Produto p WHERE p.codigobarras = :codigobarras”), @NamedQuery(name = “Produto.findByNomeproduto”, query = “SELECT p FROM Produto p WHERE p.nomeproduto = :nomeproduto”), @NamedQuery(name = “Produto.findByValorentrada”, query = “SELECT p FROM Produto p WHERE p.valorentrada = :valorentrada”), @NamedQuery(name = “Produto.findByCustomedioproduto”, query = “SELECT p FROM Produto p WHERE p.customedioproduto = :customedioproduto”), @NamedQuery(name = “Produto.findByTotal”, query = “SELECT p FROM Produto p WHERE p.total = :total”), @NamedQuery(name = “Produto.findByEstoque”, query = “SELECT p FROM Produto p WHERE p.estoque = :estoque”), @NamedQuery(name = “Produto.findByCodigounidademedida”, query = “SELECT p FROM Produto p WHERE p.codigounidademedida = :codigounidademedida”), @NamedQuery(name = “Produto.findByDescricaounidademedida”, query = “SELECT p FROM Produto p WHERE p.descricaounidademedida = :descricaounidademedida”), @NamedQuery(name = “Produto.findByCodigogrupo”, query = “SELECT p FROM Produto p WHERE p.codigogrupo = :codigogrupo”), @NamedQuery(name = “Produto.findByDescricaogrupo”, query = “SELECT p FROM Produto p WHERE p.descricaogrupo = :descricaogrupo”), @NamedQuery(name = “Produto.findByEstoqueminimo”, query = “SELECT p FROM Produto p WHERE p.estoqueminimo = :estoqueminimo”)})
    public class Produto implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = “CODIGOPRODUTO”, nullable = false)
    private Integer codigoproduto;
    @Column(name = “CODIGOBARRAS”)
    private String codigobarras;
    @Column(name = “NOMEPRODUTO”)
    private String nomeproduto;
    @Column(name = “VALORENTRADA”)
    private Double valorentrada;
    @Column(name = “CUSTOMEDIOPRODUTO”)
    private Double customedioproduto;
    @Column(name = “TOTAL”)
    private Double total;
    @Column(name = “ESTOQUE”)
    private Integer estoque;
    @Column(name = “CODIGOUNIDADEMEDIDA”)
    private Integer codigounidademedida;
    @Column(name = “DESCRICAOUNIDADEMEDIDA”)
    private String descricaounidademedida;
    @Column(name = “CODIGOGRUPO”)
    private Integer codigogrupo;
    @Column(name = “DESCRICAOGRUPO”)
    private String descricaogrupo;
    @Column(name = “ESTOQUEMINIMO”)
    private Integer estoqueminimo;

    public Produto() {
    }

    public Produto(Integer codigoproduto) {
    this.codigoproduto = codigoproduto;
    }

    public Integer getCodigoproduto() {
    return codigoproduto;
    }

    public void setCodigoproduto(Integer codigoproduto) {
    Integer oldCodigoproduto = this.codigoproduto;
    this.codigoproduto = codigoproduto;
    changeSupport.firePropertyChange(“codigoproduto”, oldCodigoproduto, codigoproduto);
    }

    public String getCodigobarras() {
    return codigobarras;
    }

    public void setCodigobarras(String codigobarras) {
    String oldCodigobarras = this.codigobarras;
    this.codigobarras = codigobarras;
    changeSupport.firePropertyChange(“codigobarras”, oldCodigobarras, codigobarras);
    }

    public String getNomeproduto() {
    return nomeproduto;
    }

    public void setNomeproduto(String nomeproduto) {
    String oldNomeproduto = this.nomeproduto;
    this.nomeproduto = nomeproduto;
    changeSupport.firePropertyChange(“nomeproduto”, oldNomeproduto, nomeproduto);
    }

    public Double getValorentrada() {
    return valorentrada;
    }

    public void setValorentrada(Double valorentrada) {
    Double oldValorentrada = this.valorentrada;
    this.valorentrada = valorentrada;
    changeSupport.firePropertyChange(“valorentrada”, oldValorentrada, valorentrada);
    }

    public Double getCustomedioproduto() {
    return customedioproduto;
    }

    public void setCustomedioproduto(Double customedioproduto) {
    Double oldCustomedioproduto = this.customedioproduto;
    this.customedioproduto = customedioproduto;
    changeSupport.firePropertyChange(“customedioproduto”, oldCustomedioproduto, customedioproduto);
    }

    public Double getTotal() {
    return total;
    }

    public void setTotal(Double total) {
    Double oldTotal = this.total;
    this.total = total;
    changeSupport.firePropertyChange(“total”, oldTotal, total);
    }

    public Integer getEstoque() {
    return estoque;
    }

    public void setEstoque(Integer estoque) {
    Integer oldEstoque = this.estoque;
    this.estoque = estoque;
    changeSupport.firePropertyChange(“estoque”, oldEstoque, estoque);
    }

    public Integer getCodigounidademedida() {
    return codigounidademedida;
    }

    public void setCodigounidademedida(Integer codigounidademedida) {
    Integer oldCodigounidademedida = this.codigounidademedida;
    this.codigounidademedida = codigounidademedida;
    changeSupport.firePropertyChange(“codigounidademedida”, oldCodigounidademedida, codigounidademedida);
    }

    public String getDescricaounidademedida() {
    return descricaounidademedida;
    }

    public void setDescricaounidademedida(String descricaounidademedida) {
    String oldDescricaounidademedida = this.descricaounidademedida;
    this.descricaounidademedida = descricaounidademedida;
    changeSupport.firePropertyChange(“descricaounidademedida”, oldDescricaounidademedida, descricaounidademedida);
    }

    public Integer getCodigogrupo() {
    return codigogrupo;
    }

    public void setCodigogrupo(Integer codigogrupo) {
    Integer oldCodigogrupo = this.codigogrupo;
    this.codigogrupo = codigogrupo;
    changeSupport.firePropertyChange(“codigogrupo”, oldCodigogrupo, codigogrupo);
    }

    public String getDescricaogrupo() {
    return descricaogrupo;
    }

    public void setDescricaogrupo(String descricaogrupo) {
    String oldDescricaogrupo = this.descricaogrupo;
    this.descricaogrupo = descricaogrupo;
    changeSupport.firePropertyChange(“descricaogrupo”, oldDescricaogrupo, descricaogrupo);
    }

    public Integer getEstoqueminimo() {
    return estoqueminimo;
    }

    public void setEstoqueminimo(Integer estoqueminimo) {
    Integer oldEstoqueminimo = this.estoqueminimo;
    this.estoqueminimo = estoqueminimo;
    changeSupport.firePropertyChange(“estoqueminimo”, oldEstoqueminimo, estoqueminimo);
    }

    @Override
    public int hashCode() {
    int hash = 0;
    hash += (codigoproduto != null ? codigoproduto.hashCode() : 0);
    return hash;
    }

    @Override
    public boolean equals(Object object) {
    // TODO: Warning - this method won’t work in the case the id fields are not set
    if (!(object instanceof Produto)) {
    return false;
    }
    Produto other = (Produto) object;
    if ((this.codigoproduto == null && other.codigoproduto != null) || (this.codigoproduto != null && !this.codigoproduto.equals(other.codigoproduto))) {
    return false;
    }
    return true;
    }

    @Override
    public String toString() {
    return “br.com.ControleDeEstoqueSicredi.View.Produto[codigoproduto=” + codigoproduto + “]”;
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
    changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
    changeSupport.removePropertyChangeListener(listener);
    }

}

cara,

qdo postar algum codigo, coloque dentro da tag code.
vc tem certeza que os atributos do seu objeto nao sao nulo, posta essa classe tbm.

t+

nao entendi o que voce quis dizer

qdo postar algum codigo, coloque dentro da tag code.

produtoQuery = entityManager.createNamedQuery("Produto.findByCodigoproduto");
produtoQuery.setParameter("codigoproduto", detalhesaida.getDetalhesaidaPK().getCodigoproduto());
List<Produto> data = produtoQuery.getResultList();

data.get(0).setEstoque(data.get(0).getEstoque()-detalhesaida.getQuantidadedetalhesaida());//verificar se esses atributos do objeto detalhesaida nao sao nulos
data.get(0).setCustomedioproduto((data.get(0).getTotal()-detalhesaida.getTotaldetalhesaida())/data.get(0).getEstoque());
data.get(0).setTotal(data.get(0).getCustomedioproduto()*data.get(0).getEstoque());

postar a classe DetalheSaida

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package br.com.ControleDeEstoqueSicredi.bean;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
*

  • @author Diego
    */
    @Entity
    @Table(name = “produto”,schema = “”)
    @NamedQueries({@NamedQuery(name = “Produto.findByCodigoproduto”, query = “SELECT p FROM Produto p WHERE p.codigoproduto = :codigoproduto”), @NamedQuery(name = “Produto.findByCodigobarras”, query = “SELECT p FROM Produto p WHERE p.codigobarras = :codigobarras”), @NamedQuery(name = “Produto.findByNomeproduto”, query = “SELECT p FROM Produto p WHERE p.nomeproduto = :nomeproduto”), @NamedQuery(name = “Produto.findByValorentrada”, query = “SELECT p FROM Produto p WHERE p.valorentrada = :valorentrada”), @NamedQuery(name = “Produto.findByCustomedioproduto”, query = “SELECT p FROM Produto p WHERE p.customedioproduto = :customedioproduto”), @NamedQuery(name = “Produto.findByTotal”, query = “SELECT p FROM Produto p WHERE p.total = :total”), @NamedQuery(name = “Produto.findByEstoque”, query = “SELECT p FROM Produto p WHERE p.estoque = :estoque”), @NamedQuery(name = “Produto.findByCodigounidademedida”, query = “SELECT p FROM Produto p WHERE p.codigounidademedida = :codigounidademedida”), @NamedQuery(name = “Produto.findByDescricaounidademedida”, query = “SELECT p FROM Produto p WHERE p.descricaounidademedida = :descricaounidademedida”), @NamedQuery(name = “Produto.findByCodigogrupo”, query = “SELECT p FROM Produto p WHERE p.codigogrupo = :codigogrupo”), @NamedQuery(name = “Produto.findByDescricaogrupo”, query = “SELECT p FROM Produto p WHERE p.descricaogrupo = :descricaogrupo”), @NamedQuery(name = “Produto.findByEstoqueminimo”, query = “SELECT p FROM Produto p WHERE p.estoqueminimo = :estoqueminimo”)})
    public class Produto implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = “CODIGOPRODUTO”, nullable = false)
    private Integer codigoproduto;
    @Column(name = “CODIGOBARRAS”)
    private String codigobarras;
    @Column(name = “NOMEPRODUTO”)
    private String nomeproduto;
    @Column(name = “VALORENTRADA”)
    private Double valorentrada;
    @Column(name = “CUSTOMEDIOPRODUTO”)
    private Double customedioproduto;
    @Column(name = “TOTAL”)
    private Double total;
    @Column(name = “ESTOQUE”)
    private Integer estoque;
    @Column(name = “CODIGOUNIDADEMEDIDA”)
    private Integer codigounidademedida;
    @Column(name = “DESCRICAOUNIDADEMEDIDA”)
    private String descricaounidademedida;
    @Column(name = “CODIGOGRUPO”)
    private Integer codigogrupo;
    @Column(name = “DESCRICAOGRUPO”)
    private String descricaogrupo;
    @Column(name = “ESTOQUEMINIMO”)
    private Integer estoqueminimo;

    public Produto() {
    }

    public Produto(Integer codigoproduto) {
    this.codigoproduto = codigoproduto;
    }

    public Integer getCodigoproduto() {
    return codigoproduto;
    }

    public void setCodigoproduto(Integer codigoproduto) {
    Integer oldCodigoproduto = this.codigoproduto;
    this.codigoproduto = codigoproduto;
    changeSupport.firePropertyChange(“codigoproduto”, oldCodigoproduto, codigoproduto);
    }

    public String getCodigobarras() {
    return codigobarras;
    }

    public void setCodigobarras(String codigobarras) {
    String oldCodigobarras = this.codigobarras;
    this.codigobarras = codigobarras;
    changeSupport.firePropertyChange(“codigobarras”, oldCodigobarras, codigobarras);
    }

    public String getNomeproduto() {
    return nomeproduto;
    }

    public void setNomeproduto(String nomeproduto) {
    String oldNomeproduto = this.nomeproduto;
    this.nomeproduto = nomeproduto;
    changeSupport.firePropertyChange(“nomeproduto”, oldNomeproduto, nomeproduto);
    }

    public Double getValorentrada() {
    return valorentrada;
    }

    public void setValorentrada(Double valorentrada) {
    Double oldValorentrada = this.valorentrada;
    this.valorentrada = valorentrada;
    changeSupport.firePropertyChange(“valorentrada”, oldValorentrada, valorentrada);
    }

    public Double getCustomedioproduto() {
    return customedioproduto;
    }

    public void setCustomedioproduto(Double customedioproduto) {
    Double oldCustomedioproduto = this.customedioproduto;
    this.customedioproduto = customedioproduto;
    changeSupport.firePropertyChange(“customedioproduto”, oldCustomedioproduto, customedioproduto);
    }

    public Double getTotal() {
    return total;
    }

    public void setTotal(Double total) {
    Double oldTotal = this.total;
    this.total = total;
    changeSupport.firePropertyChange(“total”, oldTotal, total);
    }

    public Integer getEstoque() {
    return estoque;
    }

    public void setEstoque(Integer estoque) {
    Integer oldEstoque = this.estoque;
    this.estoque = estoque;
    changeSupport.firePropertyChange(“estoque”, oldEstoque, estoque);
    }

    public Integer getCodigounidademedida() {
    return codigounidademedida;
    }

    public void setCodigounidademedida(Integer codigounidademedida) {
    Integer oldCodigounidademedida = this.codigounidademedida;
    this.codigounidademedida = codigounidademedida;
    changeSupport.firePropertyChange(“codigounidademedida”, oldCodigounidademedida, codigounidademedida);
    }

    public String getDescricaounidademedida() {
    return descricaounidademedida;
    }

    public void setDescricaounidademedida(String descricaounidademedida) {
    String oldDescricaounidademedida = this.descricaounidademedida;
    this.descricaounidademedida = descricaounidademedida;
    changeSupport.firePropertyChange(“descricaounidademedida”, oldDescricaounidademedida, descricaounidademedida);
    }

    public Integer getCodigogrupo() {
    return codigogrupo;
    }

    public void setCodigogrupo(Integer codigogrupo) {
    Integer oldCodigogrupo = this.codigogrupo;
    this.codigogrupo = codigogrupo;
    changeSupport.firePropertyChange(“codigogrupo”, oldCodigogrupo, codigogrupo);
    }

    public String getDescricaogrupo() {
    return descricaogrupo;
    }

    public void setDescricaogrupo(String descricaogrupo) {
    String oldDescricaogrupo = this.descricaogrupo;
    this.descricaogrupo = descricaogrupo;
    changeSupport.firePropertyChange(“descricaogrupo”, oldDescricaogrupo, descricaogrupo);
    }

    public Integer getEstoqueminimo() {
    return estoqueminimo;
    }

    public void setEstoqueminimo(Integer estoqueminimo) {
    Integer oldEstoqueminimo = this.estoqueminimo;
    this.estoqueminimo = estoqueminimo;
    changeSupport.firePropertyChange(“estoqueminimo”, oldEstoqueminimo, estoqueminimo);
    }

    @Override
    public int hashCode() {
    int hash = 0;
    hash += (codigoproduto != null ? codigoproduto.hashCode() : 0);
    return hash;
    }

    @Override
    public boolean equals(Object object) {
    // TODO: Warning - this method won’t work in the case the id fields are not set
    if (!(object instanceof Produto)) {
    return false;
    }
    Produto other = (Produto) object;
    if ((this.codigoproduto == null && other.codigoproduto != null) || (this.codigoproduto != null && !this.codigoproduto.equals(other.codigoproduto))) {
    return false;
    }
    return true;
    }

    @Override
    public String toString() {
    return “br.com.ControleDeEstoqueSicredi.View.Produto[codigoproduto=” + codigoproduto + “]”;
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
    changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
    changeSupport.removePropertyChangeListener(listener);
    }

}

os objtos selecionados estão todos na classe produto, e os mesmos nao estao selecionados no banco de dados como nulo nao, nao consegui colocar esses tag code, pois eu sou novo no forum.