IllegalArgumentException 休眠多对多



当我尝试保存我的对象时,我收到以下错误,该对象在休眠中映射到多个:

IllegalArgumentException in class: model.Especialidade, getter Property 方法: idespecialidade

以下是我的特别资料.hbm

    <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 16/11/2015 11:41:49 by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
    <class name="model.Especialidade" table="especialidade" schema="public" optimistic-lock="version">
        <id name="idespecialidade" type="int">
            <column name="idespecialidade" />
            <generator class="increment" />
        </id>
        <property name="descricao" type="string">
            <column name="descricao" length="30" not-null="true" />
        </property>
        <bag name="servicoses" table="servicos" inverse="false" lazy="false" fetch="select" cascade="all,delete-orphan"  >
            <key>
                <column name="idespecialidade" />
            </key>
            <one-to-many class="model.Servicos" />
        </bag>
            <bag name="profissionais" table="profissional_especialidade">  <!-- inverse="true" lazy="true" fetch="select" -->
            <key>
                <column name="idespecialidade" not-null="true" />
            </key>
            <many-to-many entity-name="model.Profissional">
                <column name="idusuario" not-null="true" />
            </many-to-many>
        </bag>
    </class>
</hibernate-mapping>

我的专业.hbm

    <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 16/11/2015 11:41:49 by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
    <class name="model.Profissional" table="profissional" schema="public" optimistic-lock="version">
        <id name="idusuario" type="int">
            <column name="idusuario" />
            <generator class="foreign" >
                <param name="property">usuario</param>
            </generator>
        </id>
        <one-to-one name="usuario" class="model.Usuario" fetch="select" lazy="false" constrained="true" />

        <property name="percentcomissao" type="double">
            <column name="percentcomissao"  />
        </property>
        <property name="situacao" type="string">
            <column name="situacao" length="30" not-null="true" />
        </property>
        <bag name="especialidades" table="profissional_especialidade" lazy="false" > <!-- inverse="false" lazy="true" fetch="select" cascade="all" -->
            <key>
                <column name="idusuario" not-null="true"/>
            </key>
            <many-to-many entity-name="model.Especialidade">
                <column name="idespecialidade" not-null="true" />
            </many-to-many>
        </bag>
    </class>
</hibernate-mapping>

我的特异.class

package model;
// Generated 16/11/2015 11:41:48 by Hibernate Tools 4.3.1

import java.util.ArrayList;
import java.util.List;
/**
 * Especialidade generated by hbm2java
 */
public class Especialidade  implements java.io.Serializable {

     private int idespecialidade;
     private String descricao;
     private List servicoses = new ArrayList();
     private List<Profissional> profissionais = new ArrayList();
    public Especialidade() {
    }

    public Especialidade(int idespecialidade, String descricao) {
        this.idespecialidade = idespecialidade;
        this.descricao = descricao;
    }
    public Especialidade(int idespecialidade, String descricao, List servicoses) {
       this.idespecialidade = idespecialidade;
       this.descricao = descricao;
       this.servicoses = servicoses;
    }
    public int getIdespecialidade() {
        return this.idespecialidade;
    }
    public void setIdespecialidade(int idespecialidade) {
        this.idespecialidade = idespecialidade;
    }
    public String getDescricao() {
        return this.descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    public List<Servicos> getServicoses() {
        return this.servicoses;
    }
    public void setServicoses(List servicoses) {
        this.servicoses = servicoses;
    }
    public void addServicoses(Servicos servico){
       this.servicoses.add(servico);
    }
    public void removeServicoes(Servicos servico){
        this.servicoses.remove(servico);
    }
    /**
     * @return the profissionais
     */
    public List<Profissional> getProfissionais() {
        return profissionais;
    }
    /**
     * @param profissionais the profissionais to set
     */
    public void setProfissionais(List<Profissional> profissionais) {
        this.profissionais = profissionais;
    }


}

我的专业.class

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package model;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author vinicius.lemos
 */
public class Profissional implements java.io.Serializable {
    private int idusuario;
    private Usuario usuario = new Usuario();
    private double percentcomissao;
    private String situacao;
    private List<Especialidade> Especialidades = new ArrayList();
    /**
     * @return the idprofissional
     */
    public int getIdusuario() {
        return idusuario;
    }
    /**
     * @param idusuario the idprofissional to set
     */
    public void setIdusuario(int idusuario) {
        this.idusuario = idusuario;
    }

    /**
     * @return the percentcomissao
     */
    public double getPercentcomissao() {
        return percentcomissao;
    }
    /**
     * @param percentcomissao the percentcomissao to set
     */
    public void setPercentcomissao(double percentcomissao) {
        this.percentcomissao = percentcomissao;
    }
    /**
     * @return the situacao
     */
    public String getSituacao() {
        return situacao;
    }
    /**
     * @param situacao the situacao to set
     */
    public void setSituacao(String situacao) {
        this.situacao = situacao;
    }
    /**
     * @return the usuario
     */
    public Usuario getUsuario() {
        return usuario;
    }
    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    /**
     * @return the Especialidades
     */
    public List<Especialidade> getEspecialidades() {
        return Especialidades;
    }
    /**
     * @param Especialidades the Especialidades to set
     */
    public void setEspecialidades(List<Especialidade> Especialidades) {
        this.Especialidades = Especialidades;
    }

}

请在下面找到它:

这是我收到错误的地方(在提交时(:

  @Override
    public String salvar(Object t) {
       logger.info("Entrou no genericDao .."); 
        try {
            logger.info("Abrindo Conexao"); 
            abreConexao();
            logger.info("Salvando Objeto"); 
            sessao.save(t);
            transaction.commit();
            sessao.flush();
            fechaConexao();
            return "Salvo com sucesso";
        } catch (ConstraintViolationException e){
            return "O registro já existe na base ";
        } catch (Exception e) {
            return "Erro ao salvar!" + e.getMessage();
        } 

以下是完整的跟踪:

Informações:   >>>>>>>http://localhost:8080/salao/faces/restrito/profissionalManter.xhtml
Informações:   Hibernate: select usuario0_.idusuario as idusuari1_5_, usuario0_.idgrupo as idgrupo2_5_, usuario0_.login as login3_5_, usuario0_.senha as senha4_5_, usuario0_.nome as nome5_5_, usuario0_.situacao as situacao6_5_, usuario0_.trocasenha as trocasen7_5_ from public.usuario usuario0_ cross join public.grupo grupo1_ where usuario0_.idgrupo=grupo1_.idgrupo and grupo1_.nome='profissional' order by usuario0_.login
Informações:   Hibernate: select grupo0_.idgrupo as idgrupo1_2_0_, grupo0_.nome as nome2_2_0_ from public.grupo grupo0_ where grupo0_.idgrupo=?
Informações:   Hibernate: select profission0_.idusuario as idusuari1_3_0_, profission0_.percentcomissao as percentc2_3_0_, profission0_.situacao as situacao3_3_0_ from public.profissional profission0_ where profission0_.idusuario=?
Informações:   Hibernate: select usuarios0_.idgrupo as idgrupo2_2_0_, usuarios0_.idusuario as idusuari1_5_0_, usuarios0_.idusuario as idusuari1_5_1_, usuarios0_.idgrupo as idgrupo2_5_1_, usuarios0_.login as login3_5_1_, usuarios0_.senha as senha4_5_1_, usuarios0_.nome as nome5_5_1_, usuarios0_.situacao as situacao6_5_1_, usuarios0_.trocasenha as trocasen7_5_1_ from public.usuario usuarios0_ where usuarios0_.idgrupo=?
Informações:   Hibernate: select usuario0_.idusuario as idusuari1_5_, usuario0_.idgrupo as idgrupo2_5_, usuario0_.login as login3_5_, usuario0_.senha as senha4_5_, usuario0_.nome as nome5_5_, usuario0_.situacao as situacao6_5_, usuario0_.trocasenha as trocasen7_5_ from public.usuario usuario0_ cross join public.grupo grupo1_ where usuario0_.idgrupo=grupo1_.idgrupo and grupo1_.nome='profissional' order by usuario0_.login
Informações:   Hibernate: select grupo0_.idgrupo as idgrupo1_2_0_, grupo0_.nome as nome2_2_0_ from public.grupo grupo0_ where grupo0_.idgrupo=?
Informações:   Hibernate: select profission0_.idusuario as idusuari1_3_0_, profission0_.percentcomissao as percentc2_3_0_, profission0_.situacao as situacao3_3_0_ from public.profissional profission0_ where profission0_.idusuario=?
Informações:   Hibernate: select usuarios0_.idgrupo as idgrupo2_2_0_, usuarios0_.idusuario as idusuari1_5_0_, usuarios0_.idusuario as idusuari1_5_1_, usuarios0_.idgrupo as idgrupo2_5_1_, usuarios0_.login as login3_5_1_, usuarios0_.senha as senha4_5_1_, usuarios0_.nome as nome5_5_1_, usuarios0_.situacao as situacao6_5_1_, usuarios0_.trocasenha as trocasen7_5_1_ from public.usuario usuarios0_ where usuarios0_.idgrupo=?
Informações:   Hibernate: select especialid0_.idespecialidade as idespeci1_1_, especialid0_.descricao as descrica2_1_ from public.especialidade especialid0_ order by especialid0_.descricao
Informações:   Hibernate: select servicoses0_.idespecialidade as idespeci2_1_0_, servicoses0_.idservico as idservic1_4_0_, servicoses0_.idservico as idservic1_4_1_, servicoses0_.idespecialidade as idespeci2_4_1_, servicoses0_.descricao as descrica3_4_1_ from public.servicos servicoses0_ where servicoses0_.idespecialidade=?
Informações:   Hibernate: select servicoses0_.idespecialidade as idespeci2_1_0_, servicoses0_.idservico as idservic1_4_0_, servicoses0_.idservico as idservic1_4_1_, servicoses0_.idespecialidade as idespeci2_4_1_, servicoses0_.descricao as descrica3_4_1_ from public.servicos servicoses0_ where servicoses0_.idespecialidade=?
Informações:   Entrou no menu gravar
Informações:   2016-02-13 13:51:57 INFO  ProfissionalManager:177 - Chamou o Menu Gravar
Informações:   2016-02-13 13:51:57 INFO  ProfissionalManager:179 - acao novo encontrado
Informações:   2016-02-13 13:51:57 INFO  ProfissionalDao:44 - Salvar Profissional....
Informações:   2016-02-13 13:51:57 INFO  GenericDao:31 - Entrou no genericDao ..
Informações:   2016-02-13 13:51:57 INFO  GenericDao:33 - Abrindo Conexao
Informações:   2016-02-13 13:51:57 INFO  GenericDao:35 - Salvando Objeto
Informações:   Hibernate: insert into public.profissional (percentcomissao, situacao, idusuario) values (?, ?, ?)
Informações:   Hibernate: insert into profissional_especialidade (idusuario, idespecialidade) values (?, ?)
ERROR:   HHH000122: IllegalArgumentException in class: model.Especialidade, getter method of property: idespecialidade
Informações:   Hibernate: select profission0_.idusuario as idusuari1_3_, profission0_.percentcomissao as percentc2_3_, profission0_.situacao as situacao3_3_ from public.profissional profission0_
Informações:   Hibernate: select profission0_.idusuario as idusuari1_3_, profission0_.percentcomissao as percentc2_3_, profission0_.situacao as situacao3_3_ from public.profissional profission0_
Informações:   >>>>>> model.Usuario@62a2d6c9
Informações:   >>>>>>>http://localhost:8080/salao/faces/javax.faces.resource/jquery/jquery.js
Informações:   >>>>>>>http://localhost:8080/salao/faces/javax.faces.resource/primefaces.js
Informações:   >>>>>>>http://localhost:8080/salao/faces/javax.faces.resource/jquery/jquery-plugins.js
Informações:   >>>>>>>http://localhost:8080/salao/faces/javax.faces.resource/layout/layout.js

相关内容

  • 没有找到相关文章

最新更新