Criteria - Associação

4 respostas
heatcold

Supondo esse mapeamento:

<hibernate-mapping>
    <class name="especialista.regra.Diagnostico"  table="DIAGNOSTICOS">
        
        <many-to-one
            name="regra"
            class="especialista.regra.Regra"
            not-null="false" />
        
        </class>    
</hibernate-mapping>

Quando eu faço:

Criteria criteria = session.createCriteria(Diagnostico.class);
List<Diagnostico> list = criteria.list();
for (int i=0; i<list.size(); i++)
      System.out.println(list.get(i).getRegra().getTipo());

Todos os valores de tipo vem zerados. Sendo que eles sao diferentes de zero.

Por que? Alguem pode me ajudar?

4 Respostas

DirceuSobrinho

Teste utilizando o lazy=false no mapeamento de Regra

<hibernate-mapping>
    <class name="especialista.regra.Diagnostico"  table="DIAGNOSTICOS" [b]lazy=false[/b]>
        
     ... 
        
     </class>    
</hibernate-mapping>

Apesar de não ser uma boa prática utilizar lazy=false

E

Olá, tente isso na linha 1:
Criteria criteria = session.createCriteria(Diagnostico.class).createAlias(“regra”,“r”);
e nem é preciso colocar lazy=“false” , espero ter ajudado

heatcold

Todos os tipos para regra estão como 0. Sendo que são todos 2.
Tanto usando lazy=“false” quanto o esquema de alias sugerido pelo edu_naka.

E

Sei que parece besta eu perguntar, mas você colocou as colunas de chave para relação com a tabela regra, por exemplo:

Espero ter ajudado

Criado 16 de janeiro de 2008
Ultima resposta 17 de jan. de 2008
Respostas 4
Participantes 3