Duvida Criteria

1 resposta
Deluxe

Pessoal
me corriga se eu estiver errado

Estou fazendo alguns testes aqui e tiver um problema com busca com criteria

Tenho uma Classe Pessoa
e outra Classe CachorroPessoa

meu relacionamento está assim

Classe Pessoa:

@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
	@JoinColumn(name="ID_CACHORRO_PESSOA")
	private CachorroPessoa cachorroPessoa;

Meu metodo de busca..
(Antes do relacionamento funcionava, mas agora traz vazio)
Eu devo ter feito errado, pq confundo as anotações, mas uma Pessoa pode ter um Cachorro.. e o Mesmo cachorro pode ter varias pessoas

public List<Pessoa> buscarAllPessoas(Pessoa pessoaPojo) {
        
    	DetachedCriteria crit = DetachedCriteria.forClass(Pessoa.class);
        
    	if (pessoaPojo != null){
        
    		crit.add(Example.create(pessoaPojo).enableLike(MatchMode.ANYWHERE).ignoreCase());
    	
    	}
    	return getHibernateTemplate().findByCriteria(crit);

    }

Resumindo
meu dataTable tem que trazer o Nome da Pessoa e o Nome do Cachorro do lado, sendo que o nome do cachorro é da outra tabela

A Query q o hibernate esta montando aparentemente esta correta agora nao entendo pq vem vazio a lista
select
        this_.ID_PESSOA as ID1_0_1_,
        this_.ID_CACHORRO_PESSOA as ID4_0_1_,
        this_.IDADE as IDADE0_1_,
        this_.NOME_PESSOA as NOME3_0_1_,
        cachorrope2_.ID_CACHORRO_PESSOA as ID1_1_0_,
        cachorrope2_.INFO as INFO1_0_,
        cachorrope2_.NOME_CACHORRO as NOME3_1_0_ 
    from
        PESSOA this_ 
    left outer join
        CACHORRO_PESSOA cachorrope2_ 
            on this_.ID_CACHORRO_PESSOA=cachorrope2_.ID_CACHORRO_PESSOA 
    where
        (
            this_.IDADE=?
        )

1 Resposta

Deluxe

Resolvido

para trazer dados de um relacionamento

public List<Pessoa> buscarAllPessoas(Pessoa pessoaPojo) {
        
    	 DetachedCriteria criteria = DetachedCriteria.forClass(Pessoa.class).setFetchMode("cachorroPessoa", FetchMode.JOIN);
    	
    	 List<Pessoa> lista = new ArrayList<Pessoa>();
			
    	 lista = getHibernateTemplate().findByCriteria(criteria);
			
		 return lista;
    	 
    }

onde cachorroPessoa é o nome do objeto da classe Pessoa..

até

Criado 9 de abril de 2009
Ultima resposta 9 de abr. de 2009
Respostas 1
Participantes 1