Hibernate -> Relacionamentos Nulos

Salve gALLera,

Tenho uma classe cliente que se relaciona com varias outras classes quando faco uma busca por esta classe e não existe registro para este cliente em um desses relacionamento recebo o seguinte erro:

from Cliente c where c.fonema1 = 'R250' and c.fonema2 = 'S532' 
2005-05-19 11:31:16,218 DEBUG [net.sf.hibernate.loader.Loader] processing result set
2005-05-19 11:31:16,218 DEBUG [net.sf.hibernate.loader.Loader] done processing result set (0 rows)
2005-05-19 11:31:16,546 DEBUG [net.sf.hibernate.impl.BatcherImpl] done closing: 0 open PreparedStatements, 0 open ResultSets
2005-05-19 11:31:16,546 DEBUG [net.sf.hibernate.impl.BatcherImpl] closing statement
2005-05-19 11:31:16,984 DEBUG [net.sf.hibernate.loader.Loader] total objects hydrated: 0
2005-05-19 11:31:16,984 INFO  [STDOUT] net.sf.hibernate.UnresolvableObjectException: 
No row with the given identifier exists: 581, of class: ..... .Funcionario
	at net.sf.hibernate.UnresolvableObjectException.throwIfNull(UnresolvableObjectException.java:38)
	at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1954)
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping
>
    <class
        name="br.com.hermes.popshop.entidades.Cliente"
        table="Cliente"
        dynamic-update="false"
        dynamic-insert="false"
        select-before-update="false"
        optimistic-lock="version"
    >

        <id
            name="codigo"
            column="cod_cliente"
            type="int"
            unsaved-value="0"
        >
            <generator class="assigned">
              <!--  
                  To add non XDoclet generator parameters, create a file named 
                  hibernate-generator-params-Cliente.xml 
                  containing the additional parameters and place it in your merge dir. 
              --> 
            </generator>
        </id>

        <property
            name="bairro"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_bairro"
            length="36"
        />

        <property
            name="cep"
            type="int"
            update="true"
            insert="true"
            access="property"
            column="nro_cep"
        />

        <many-to-one
            name="cidade"
            class="br.com.hermes.popshop.entidades.Cidade"
            cascade="none"
            outer-join="auto"
            update="true"
            insert="true"
            access="property"
            column="cod_cidade"
        />

        <property
            name="complemento"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_complemento"
            length="17"
        />

        <property
            name="dataRecadastramento"
            type="java.util.Date"
            update="true"
            insert="true"
            access="property"
            column="dat_recadastro"
        />

        <property
            name="dataCadastro"
            type="java.util.Date"
            update="true"
            insert="true"
            access="property"
            column="dat_cadastro"
        />

        <property
            name="dataUltimaAlteracao"
            type="java.util.Date"
            update="true"
            insert="true"
            access="property"
            column="dat_ultatu"
        />

        <property
            name="email"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_email"
            length="36"
        />

        <property
            name="endereco"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_endereco"
            length="36"
        />

        <property
            name="excluido"
            type="boolean"
            update="true"
            insert="true"
            access="property"
            column="flg_excluido"
            not-null="true"
        />

        <property
            name="fonema1"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_fonema1"
            length="3"
        />

        <property
            name="fonema2"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_fonema2"
            length="3"
        />

        <property
            name="fonema3"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_fonema3"
            length="3"
        />

        <property
            name="fonema4"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="dsc_fonema4"
            length="3"
        />

        <many-to-one
            name="funcionarioCadastro"
            class="br.com.hermes.popshop.entidades.Funcionario"
            cascade="none"
            outer-join="true"
            update="true"
            insert="true"
            access="property"
            column="cod_funcadastro"
        />

        <many-to-one
            name="funcionarioUltimaAlteracao"
            class="br.com.hermes.popshop.entidades.Funcionario"
            cascade="none"
            outer-join="true"
            update="true"
            insert="true"
            access="property"
            column="cod_funultatu"
        />

        <many-to-one
            name="lojaCadastro"
            class="br.com.hermes.popshop.entidades.Loja"
            cascade="none"
            outer-join="true"
            update="true"
            insert="true"
            access="property"
            column="cod_lojacadastro"
        />

        <property
            name="nome"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nom_cliente"
            length="36"
        />

        <many-to-one
            name="status"
            class="br.com.hermes.popshop.entidades.ClienteStatus"
            cascade="none"
            outer-join="true"
            update="true"
            insert="true"
            access="property"
            column="cod_status"
        />

        <set
            name="telefones"
            lazy="false"
            inverse="false"
            cascade="all"
            sort="unsorted"
        >

              <key
                  column="cod_cliente"
              >
              </key>

              <one-to-many
                  class="br.com.hermes.popshop.entidades.ClienteTelefone"
              />

        </set>

        <property
            name="clienteTipo"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="tip_cliente"
            length="1"
        />

        <set
            name="cartoes"
            lazy="false"
            inverse="false"
            cascade="all"
            sort="unsorted"
        >

              <key
                  column="cod_cliente"
              >
              </key>

              <one-to-many
                  class="br.com.hermes.popshop.entidades.ClienteCartao"
              />

        </set>

        <!--
            To add non XDoclet property mappings, create a file named
                hibernate-properties-Cliente.xml
            containing the additional properties and place it in your merge dir.
        -->

        <joined-subclass
            name="br.com.hermes.popshop.entidades.ClientePJ"
            table="cliente_PJ"
            dynamic-update="false"
            dynamic-insert="false"
        >
        <key
            column="cod_cliente"
        />
        <property
            name="cnpj"
            type="long"
            update="true"
            insert="true"
            access="property"
            column="nro_cnpj"
        />

        <property
            name="contato"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nom_contato"
            length="36"
        />

        <property
            name="insestadual"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nro_insestadual"
            length="14"
        />

        </joined-subclass>
        <joined-subclass
            name="br.com.hermes.popshop.entidades.ClientePF"
            table="cliente_PF"
            dynamic-update="false"
            dynamic-insert="false"
        >
        <key
            column="cod_cliente"
        />

        <property
            name="cpf"
            type="long"
            update="true"
            insert="true"
            access="property"
            column="nro_cpf"
        />

        <property
            name="flgFuncionario"
            type="boolean"
            update="true"
            insert="true"
            access="property"
            column="flg_funcionario"
        />

        <property
            name="matricula"
            type="int"
            update="true"
            insert="true"
            access="property"
            column="cod_funcionario"
        />

        <property
            name="identidade"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nro_identidade"
            length="11"
        />

        <property
            name="mae"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nom_mae"
            length="36"
        />

        <property
            name="nascimento"
            type="java.util.Date"
            update="true"
            insert="true"
            access="property"
            column="dat_nascimento"
        />

        <property
            name="orgaoEmissorIdentidade"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nom_idenemissor"
            length="6"
        />

        <property
            name="pai"
            type="java.lang.String"
            update="true"
            insert="true"
            access="property"
            column="nom_pai"
            length="36"
        />

        <property
            name="sexo"
            type="char"
            update="true"
            insert="true"
            access="property"
            column="cod_sexo"
            length="1"
        />

        </joined-subclass>

    </class>

</hibernate-mapping>

Como vc está carregando estes dados?

Se for com o método load ele gera erro , pq ele não trata nulo.
Utilize o método get no lugar de load. ele trata valores nulo, daí é só fazer a verificação.

Abraços
Wanderson

ops, acho q me confundi… mas coloca o código java que carrega seu objeto para a gente ver … e tentar te ajudar… :lol:

Abraços
Wanderson