Not-null property references a null or transient value

3 respostas
P

Estou com o seguinte erro ao inserir um registro no hibernate com postgresql.

Erro : javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: classes.c_pedido_quarto.ehospede

c_pedido_quarto.hbm.xml
<?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="classes.c_pedido_quarto" table="pedido_quarto">
      
       <id name="c_pedido_quarto_id"  type="int">    
        <generator class="identity"/>    
        </id>    
        <many-to-one 
        name="apartamento" 
        column="apartamento" 
        class="classes.c_apartamentos"
         />
         <many-to-one
column="hospede"
name="hospede"
class="classes.c_hospedes"
cascade="all"
not-null="true"

        />
        <many-to-one
        column="ehospede"
        name="ehospede"
       class="classes.c_entrada_hospede"
  not-null="true"
       cascade="all"
     
        />
        <many-to-one 
        column="rhospede"
        name="rhospede"
        class="classes.c_reserva_hospede"
 not-null="true"
       cascade="all"
      
        />
      <many-to-one 
        column="fechamento"
        name="fechamento"
        class="classes.c_fechamento"
        cascade="all"
        not-null="true"
      
        />
<set name="l_chamada" inverse="true" cascade="all" lazy="false"> 
<key column="c_pedido_quarto_id"/> 
<one-to-many class="classes.c_chamada"/> 
</set> 
<set name="l_consumo" inverse="true" cascade="all" lazy="false"> 
<key column="c_pedido_quarto_id"/> 
<one-to-many class="classes.c_consumo"/> 
</set> 
  </class>
</hibernate-mapping>
Run do projeto :
public void Completa()
{
    try{
        
        
        getCampos(); 
        // Inseri reserva do hospede
        pquarto.setRhospede(rehospede);   
        DAOGenerico dao = new DAOGenerico(pquarto);
        dao.inseri();
        dispose();
    }catch(Exception erro)
    {
        JOptionPane.showMessageDialog(null,"Completa() :"+erro);
        System.out.println(erro);
    }
}

3 Respostas

B

A propriedade/coluna “ehospede” está marcada como not-null (não nula), e aparentemente você está tentando salvar com valor Null.

<many-to-one  
        column="ehospede"  
        name="ehospede"  
       class="classes.c_entrada_hospede"  
  not-null="true"  
       cascade="all"

A variável ehospede é diferente de null nessa linha? Faça um debug/coloque mensagens para entender o que está acontecendo…

pquarto.setRhospede(ehospede);

Valeu.

P

Bruno Cunha:
A propriedade/coluna “ehospede” está marcada como not-null (não nula), e aparentemente você está tentando salvar com valor Null.

<many-to-one  
        column="ehospede"  
        name="ehospede"  
       class="classes.c_entrada_hospede"  
  not-null="true"  
       cascade="all"

A variável ehospede é diferente de null nessa linha? Faça um debug/coloque mensagens para entender o que está acontecendo…

pquarto.setRhospede(ehospede);

Valeu.


bruno a variavel “ehospede” é sim diferente de nulo, ela e preenchida pelo formulario e inserida junto com o “c_pedido_quarto” em cascade.
e para aceita valor nulo o certo não é estar “not-null=true” ?

B

O contrário… Not-null=true não permite inserir valor nulo.

Criado 24 de dezembro de 2012
Ultima resposta 24 de dez. de 2012
Respostas 3
Participantes 2