Erro ao usar HashSet

Ola pessoal, fui implementar HashSet e começou a dar erro. Alguem poderia me ajudar?

package Cadastros.JavaBeans;

import java.util.HashSet;
import java.util.Set;

public class BeanCadastrarProduto {

    public BeanCadastrarProduto() {
    }
    //ID do cadastro de produtos
    private int id;
    private Set<Float> hp = new HashSet<Float>();

    //Tela Cadastrar
    private String codigo;
    private String descricaoProduto;
    private String descricaoAbreviada;
    private String unidade;
    private int situacao;
    private int tipo;
    private String marca;
    private String tamanho;
    private String peso;
    private String cor;
    private int grupo;
    private int subgrupo;
    private String dataUltimaAlteracao;
    private String usuarioUltimaAlteracao;
    private int departamentoFiscal;
    private float porcentagemIVA;
    private String dataCadastro;
    private String dataSaiuDeCirculacao;
    private String prazoValidade;
    private String prazoGarantia;
    private String localFisico;
    private int produtoPesado;
    private int aceitaCondicional;
    private int sairTabelaPreco;
    private String PIS;
    private String COFINS;
    private float comissao;
    private float descontoMaximo;
    //Tela Preços
    private String compraUnidade;
    private float compraQuantidade;
    private float compraPreco;
    private float margemLucro;
    private float precoPromocional;
    private float precoVenda1;
    private float precoVenda2;
    private float atacadoMargemLucro;
    private float atacadoPrecoVenda;
    private float atacadoQuantidadeMinima;
    //Tela Estoque
    private float estoqueQuantidadeAtual;
    private String motivoAjuste;
    private int estoqueMinimo;
    private int estoqueMaximo;
    //Tela Outras Informações
    private String caminhoImagem;

    //Getters e Setters
    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getDescricaoProduto() {
        return descricaoProduto;
    }

    public void setDescricaoProduto(String descricaoProduto) {
        this.descricaoProduto = descricaoProduto;
    }

    public String getDescricaoAbreviada() {
        return descricaoAbreviada;
    }

    public void setDescricaoAbreviada(String descricaoAbreviada) {
        this.descricaoAbreviada = descricaoAbreviada;
    }

    public String getUnidade() {
        return unidade;
    }

    public void setUnidade(String unidade) {
        this.unidade = unidade;
    }

    public int getSituacao() {
        return situacao;
    }

    public void setSituacao(int situacao) {
        this.situacao = situacao;
    }

    public int getTipo() {
        return tipo;
    }

    public void setTipo(int tipo) {
        this.tipo = tipo;
    }

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getTamanho() {
        return tamanho;
    }

    public void setTamanho(String tamanho) {
        this.tamanho = tamanho;
    }

    public String getPeso() {
        return peso;
    }

    public void setPeso(String peso) {
        this.peso = peso;
    }

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    public int getGrupo() {
        return grupo;
    }

    public void setGrupo(int grupo) {
        this.grupo = grupo;
    }

    public int getSubgrupo() {
        return subgrupo;
    }

    public void setSubgrupo(int subgrupo) {
        this.subgrupo = subgrupo;
    }

    public String getDataUltimaAlteracao() {
        return dataUltimaAlteracao;
    }

    public void setDataUltimaAlteracao(String dataUltimaAlteracao) {
        this.dataUltimaAlteracao = dataUltimaAlteracao;
    }

    public String getUsuarioUltimaAlteracao() {
        return usuarioUltimaAlteracao;
    }

    public void setUsuarioUltimaAlteracao(String usuarioUltimaAlteracao) {
        this.usuarioUltimaAlteracao = usuarioUltimaAlteracao;
    }

    public int getDepartamentoFiscal() {
        return departamentoFiscal;
    }

    public void setDepartamentoFiscal(int departamentoFiscal) {
        this.departamentoFiscal = departamentoFiscal;
    }

    public float getPorcentagemIVA() {
        return porcentagemIVA;
    }

    public void setPorcentagemIVA(float porcentagemIVA) {
        this.porcentagemIVA = porcentagemIVA;
    }

    public String getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(String dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public String getDataSaiuDeCirculacao() {
        return dataSaiuDeCirculacao;
    }

    public void setDataSaiuDeCirculacao(String dataSaiuDeCirculacao) {
        this.dataSaiuDeCirculacao = dataSaiuDeCirculacao;
    }

    public String getPrazoValidade() {
        return prazoValidade;
    }

    public void setPrazoValidade(String prazoValidade) {
        this.prazoValidade = prazoValidade;
    }

    public String getPrazoGarantia() {
        return prazoGarantia;
    }

    public void setPrazoGarantia(String prazoGarantia) {
        this.prazoGarantia = prazoGarantia;
    }

    public String getLocalFisico() {
        return localFisico;
    }

    public void setLocalFisico(String localFisico) {
        this.localFisico = localFisico;
    }

    public int getProdutoPesado() {
        return produtoPesado;
    }

    public void setProdutoPesado(int produtoPesado) {
        this.produtoPesado = produtoPesado;
    }

    public int getAceitaCondicional() {
        return aceitaCondicional;
    }

    public void setAceitaCondicional(int aceitaCondicional) {
        this.aceitaCondicional = aceitaCondicional;
    }

    public String getCompraUnidade() {
        return compraUnidade;
    }

    public void setCompraUnidade(String compraUnidade) {
        this.compraUnidade = compraUnidade;
    }

    public float getCompraQuantidade() {
        return compraQuantidade;
    }

    public void setCompraQuantidade(float compraQuantidade) {
        this.compraQuantidade = compraQuantidade;
    }

    public float getCompraPreco() {
        return compraPreco;
    }

    public void setCompraPreco(float compraPreco) {
        this.compraPreco = compraPreco;
    }

    public float getMargemLucro() {
        return margemLucro;
    }

    public void setMargemLucro(float margemLucro) {
        this.margemLucro = margemLucro;
    }

    public float getPrecoPromocional() {
        return precoPromocional;
    }

    public void setPrecoPromocional(float precoPromocional) {
        this.precoPromocional = precoPromocional;
    }

    public float getPrecoVenda1() {
        return precoVenda1;
    }

    public void setPrecoVenda1(float precoVenda1) {
        this.precoVenda1 = precoVenda1;
    }

    public float getPrecoVenda2() {
        return precoVenda2;
    }

    public void setPrecoVenda2(float precoVenda2) {
        this.precoVenda2 = precoVenda2;
    }

    public float getAtacadoMargemLucro() {
        return atacadoMargemLucro;
    }

    public void setAtacadoMargemLucro(float atacadoMargemLucro) {
        this.atacadoMargemLucro = atacadoMargemLucro;
    }

    public float getAtacadoPrecoVenda() {
        return atacadoPrecoVenda;
    }

    public void setAtacadoPrecoVenda(float atacadoPrecoVenda) {
        this.atacadoPrecoVenda = atacadoPrecoVenda;
    }

    public float getAtacadoQuantidadeMinima() {
        return atacadoQuantidadeMinima;
    }

    public void setAtacadoQuantidadeMinima(float atacadoQuantidadeMinima) {
        this.atacadoQuantidadeMinima = atacadoQuantidadeMinima;
    }

    public float getEstoqueQuantidadeAtual() {
        return estoqueQuantidadeAtual;
    }

    public void setEstoqueQuantidadeAtual(float estoqueQuantidadeAtual) {
        this.estoqueQuantidadeAtual = estoqueQuantidadeAtual;
    }

    public String getMotivoAjuste() {
        return motivoAjuste;
    }

    public void setMotivoAjuste(String motivoAjuste) {
        this.motivoAjuste = motivoAjuste;
    }

    public int getEstoqueMinimo() {
        return estoqueMinimo;
    }

    public void setEstoqueMinimo(int estoqueMinimo) {
        this.estoqueMinimo = estoqueMinimo;
    }

    public int getEstoqueMaximo() {
        return estoqueMaximo;
    }

    public void setEstoqueMaximo(int estoqueMaximo) {
        this.estoqueMaximo = estoqueMaximo;
    }

    public String getCaminhoImagem() {
        return caminhoImagem;
    }

    public void setCaminhoImagem(String caminhoImagem) {
        this.caminhoImagem = caminhoImagem;
    }

    public String getPIS() {
        return PIS;
    }

    public void setPIS(String PIS) {
        this.PIS = PIS;
    }

    public String getCOFINS() {
        return COFINS;
    }

    public void setCOFINS(String COFINS) {
        this.COFINS = COFINS;
    }

    public float getComissao() {
        return comissao;
    }

    public void setComissao(float comissao) {
        this.comissao = comissao;
    }

    public float getDescontoMaximo() {
        return descontoMaximo;
    }

    public void setDescontoMaximo(float descontoMaximo) {
        this.descontoMaximo = descontoMaximo;
    }

    public int getSairTabelaPreco() {
        return sairTabelaPreco;
    }

    public void setSairTabelaPreco(int sairTabelaPreco) {
        this.sairTabelaPreco = sairTabelaPreco;
    }

    public Set<Float> getHp() {
        return hp;
    }

    public void setHp(Set<Float> hp) {
        this.setHp(hp);
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="Cadastros.JavaBeans.BeanCadastrarProduto" table="tb01">
    <!-- Tela Cadastrar -->
    <id name="codigo"/>
    <property name="descricaoProduto"/>
    <property name="descricaoAbreviada"/>
    <property name="unidade"/>
    <property name="situacao"/>
    <property name="tipo"/>
    <property name="marca"/>
    <property name="tamanho"/>
    <property name="peso"/>
    <property name="cor"/>
    <property name="grupo"/>
    <property name="subgrupo"/>
    <property name="dataUltimaAlteracao"/>
    <property name="usuarioUltimaAlteracao"/>
    <property name="departamentoFiscal"/>
    <property name="porcentagemIVA"/>
    <property name="dataCadastro"/>
    <property name="dataSaiuDeCirculacao"/>
    <property name="prazoValidade"/>
    <property name="prazoGarantia"/>
    <property name="localFisico"/>
    <property name="produtoPesado"/>
    <property name="aceitaCondicional"/>
    <property name="sairTabelaPreco"/>
    <property name="PIS"/>
    <property name="COFINS"/>
    <property name="comissao"/>
    <property name="descontoMaximo"/>
    <!-- Tela Preços -->
    <property name="compraUnidade"/>
    <property name="compraQuantidade"/>
    <property name="compraPreco"/>
    <property name="margemLucro"/>
    <property name="precoPromocional"/>
    <property name="precoVenda1"/>
    <property name="precoVenda2"/>
    <property name="atacadoMargemLucro"/>
    <property name="atacadoPrecoVenda"/>
    <property name="atacadoQuantidadeMinima"/>
    <!-- Tela Estoque -->
    <property name="estoqueQuantidadeAtual"/>
    <property name="motivoAjuste"/>
    <property name="estoqueMinimo"/>
    <property name="estoqueMaximo"/>
    <!-- Tela Outras Informações -->
    <property name="caminhoImagem"/>

    <set name="historicopreco" table="tb01hp">
        <key column="id"/>
        <element column="codigo" type="float"/>
        <element column="precoCusto" type="float"/>
        <element column="precoVenda1" type="float"/>
        <element column="precoVenda2" type="float"/>
        <element column="precoPromocao" type="float"/>
        <element column="precoAtacado" type="float"/>
    </set>

  </class>
</hibernate-mapping>

O erro é o seguinte:

[code]Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource Cadastros/JavaBeans/CadastrarProduto.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:671)
at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:1134)
at org.hibernate.cfg.AnnotationConfiguration.parseMappingElement(AnnotationConfiguration.java:719)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1224)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:107)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1212)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:107)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1520)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1194)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:107)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1506)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1188)
at Principal.SessionDataBase.(SessionDataBase.java:15)
… 2 more
Caused by: org.hibernate.MappingException: Invalid ORM mapping file.
Error parsing XML (line61 : column 11): The content of element type “set” must match “(meta*,subselect?,cache?,synchronize*,comment?,key,(element|one-to-many|many-to-many|composite-element|many-to-any),loader?,sql-insert?,sql-update?,sql-delete?,sql-delete-all?,filter*)”.

    at org.hibernate.cfg.AnnotationConfiguration.addInputStream(AnnotationConfiguration.java:920)
    at org.hibernate.cfg.AnnotationConfiguration.addInputStream(AnnotationConfiguration.java:107)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:668)
    ... 17 more[/code]

Aonde que estou errando?

Não manjo muito dessa parte. Mas vai uma tentativa de ajudar.

Acho o hibernate não está encontrando o atributo Set com o nome de “historicopreco”.

[quote=Eric Yuzo]Não manjo muito dessa parte. Mas vai uma tentativa de ajudar.

Acho o hibernate não está encontrando o atributo Set com o nome de “historicopreco”.[/quote]

Bem, nao entendi muito bem. Ai no nome do set, o que eu devo colocar?

Estou meio perdido, estou começando agora a aprender sobre esse HashSet e tals… alguem poderia mostrar um exemplo, por favor.

Abraços

Não sei se esta é a regra, mas de acordo com mapeamento:

“historicopreco” deveria ser o nome do atributo do tipo Set em seu bean.

[quote=Eric Yuzo]Não sei se esta é a regra, mas de acordo com mapeamento:

“historicopreco” deveria ser o nome do atributo do tipo Set em seu bean.[/quote]

Ah sim amigo, desculpe a ignorancia hehe, estou vendo umas videos do Neri, mas nao prestei atenção nesse ponto, na verdade ele nao chegou a comentar, entao pensei que era um nome qualquer que colocava, mas agora entendi…

Bem, deu certo e nao deu. Esta acontecendo o seguinte, quando esta assim:

<set name="hp" table="tb01hp"> <key column="id" /> <element column="codigo" type="float"/> </set>

vai, ou seja, apenas com a chave primaria e um campo… agora se eu colocar mais que um campo, assim:

<set name="hp" table="tb01hp"> <key column="id" /> <element column="codigo" type="float"/> <element column="precoCusto" type="float"/> <element column="precoVenda1" type="float"/> <element column="precoVenda2" type="float"/> <element column="precoPromocao" type="float"/> <element column="precoAtacado" type="float"/> </set>

Ele da erro.

Como nas videos ele ainda esta mostrando apenas com um, entao nao sei se há modificações caso precisar de mais de um elemento…

Tipo, se tiver alguma modificação, so me diga o que é que na hora que ele for falando na video, eu ja vou estar ciente do que é.

Obrigado pela ajuda amigo.

Abraços

Uma alternativa seria utilizar “composite-element” e dentro dele mapear os campos com a tag “property”. Mas aí precisaria, por exemplo, de uma classe BeanHistoricoProduto com os atributos do histórico.

Neste link tem uma explicação melhor sobre o assunto:

http://docs.jboss.org/hibernate/core/3.5/reference/pt-BR/html/components.html

Bem, para quem disse que nao conseguiria ajudar porque nao manjava, ate que tu ta sabendo bastante hehe

Vou dar uma lida nisso ai amigo. Obrigado por ajudar.

Abraços

Hehe,

Disse que não manjo muito, porque trabalho mais com JPA. Essa parte de configuração xml eu tenho uma noção apenas na teoria. :slight_smile:

Mas enfim. O importante é que a ajuda serviu.

Sorte e bons estudos…