[Cascavel-pm] Busca complexa usando DBIx::Class

Donato Azevedo donatoaz em gmail.com
Terça Novembro 27 20:49:18 PST 2007


Pessoal,
mais uma vez eu tenho uma duvida:
eu tenho duas (A,B) entidades dependentes ligadas a uma terceira (C).

eu preciso pegar todos os B pertencentes a A que estao em C

eu tentei fazer assim:

rel_B é: A has_many B
rel_B_C é: B has_many B_C
rel_C é: B_C belongs to C

$a->rel_B->search_rs( { 'A_id'=>$a_id }, { 'join' => { 'rel_B_C' => {
'rel_C' } } } );

dando nome aos bois:
A = veiculo_eixo
B = veiculo_peca
C = catalogo
B_C = veiculo_peca_catalogo

a pesquisa gerada é esta:
SELECT me.id, me.veiculo_eixo_id, me.peca_id, me.item_eixo,
me.quantidade, me.observacao FROM veiculo_peca me LEFT JOIN
veiculo_peca_catalogo veiculo_peca_catalogoes ON (
veiculo_peca_catalogoes.veiculo_peca_id = me.id ) LEFT JOIN catalogo
catalogo ON ( catalogo.id = veiculo_peca_catalogoes.catalogo_id )
WHERE ( ( ( me.veiculo_eixo_id = ? ) AND ( me.veiculo_eixo_id = ? ) )
)

eu sei que tem um AND redundante mas se eu tiro o { 'A_id'=>$a_id }
retorna um erro pois a clausula WHERE fica vazia na query gerada

Esta pesquisa, quando eu faço na mão, retorna resultados, porém quando
executado o script não retornou

abraços,
--
Donato Azevedo


Mais detalhes sobre a lista de discussão Cascavel-pm