Olá pessoal… estou com uma baita dúvida sobre o OJB eu já li vários tutoriais mas nenhum tem a resposta que eu presiço… nem mesmo no site da apache onde se encontra o tutorial do OJB, eis o site:
http://db.apache.org/ojb/docu/guides/query.html
O problema é que eu não estou entendendo como trabalhar com OJB ou melhor… como montar um ‘select’ por exemplo que envolva mais de uma tabela usando o OJB.
Olhe esse exemplo abaixo tirado do site da apache:
A parte da clausula ‘where’ eu consigo fazer perfeitamente, mas só se eu usar só uma tabela para isso, se envolver mais de uma eu não consigo mais fazer.
SELECT DISTINCT A0.ID,
A1.VALUE
FROM CONTAINER A0
INNER JOIN ABSTRACT_ATTRIBUTE A1 ON A0.ID = A1.REF_ID
INNER JOIN ABSTRACT_ATTRIBUTE A2 ON A0.ID = A2.REF_ID
INNER JOIN ABSTRACT_ATTRIBUTE A3 ON A0.ID = A3.REF_ID
WHERE (( A0.NAME = ‘companyName’ ) AND (A0.VALUE = ‘iBanx’ ))
AND (( A1.NAME = ‘contactPerson’ ) AND (A1.VALUE LIKE ‘%junior%’ ))
AND (( A2.NAME = ‘size’ ) AND (A2.VALUE = ‘500’ ))
ORDER BY 2
De qualquer forma, eu estou muito agradecido por toda a ajuda…
Cara,
uando usamos hibernate, agente faz os mapeamentos dos campos da tabela pra as propriedades atomicas e criamos mapeamentos Many-to-one para as propriedades que referenciam outras tabelas. Ai no metodo Construtos do objeto, mapeamos as propriedades que vem de outras tabelas e fazemos o join recuperando todos os dados do objeto, olhe este exemplo de um hql simples:
SELECT new Objeto01(obj.id,obj2.nclie, obj2.tl1com,obj2.matric,obj.dataMovimento)
FROM Objeto01 as obj,
obj2 Objeto2
WHERE obj.contratoId = obj2.id
Viu como assim a junção fica facil!!
Não sei se te ajudei em alguma coisa, mas acho interessante esse tipo de abordagem!!
Flow!!!
É isso ajuda um pouco… eu já havia lido sobre como mapear as classes no arquivo xml para poder usar os relacionamentos(no hibernate vc tem que ter um .xml para cada tabela do banco de dados não é?? no o OJB vc mapeia tudo em um único arquivo: “repository_database.xml”)… eu fiz como dizia o tutorial da apache, mas na hora de montar o select da um erro dizendo que o campo não existe na tabela tal… entendeu??? olha um exemplo simples da minha dúvida:
–> Esse select, eu consigo montar sem problema…
SELECT *
FROM livro
–> Esse select, da o erro de: compo “A.autor” não existe na tabela
livro… detalhe que o arquivo .xml está mapeado certinho…
SELECT L.nome,
A.autor
FROM livro L,
autor A
mas de qualquer forma, muito obrigado pela atenção…
qualquer coisa que possa me ajudar é só postar OK!!!
Cara,
nesse ponto aqui:
SELECT L.nome,
A.autor
FROM livro L,
autor A
Faltou a junção mesmo!
Mas faz assim reconfere desde o zero seu arquivo que contem os mapeamentos! É durro reconferir aquilo que vc tem certeza que esta certo, mas é o unico jeito!
A Respeito da hibernate:
Quando usamos hibernate, podemos usar uma ferramenta chamada xdoclet que cria o arquivo de xml automatico pra gente apartir do VO,
é mais ou menos assim:
/**
-
@hibernate.class table=“bancotalentos.CURSO”
- Esta classe poderá conter métodos auxiliares para processamento da classe abstrata
*/
public class curso
Ai vc faz o mesmo para todas propriedades do seu VO e ele faz o hbm da hibernate para vc !
Só!!