seguinte… em um determinado momento da minha aplicação preciso recuperar do banco alguns objetos, no entanto, preciso de um criterio um tanto quanto diferente.
bom… pense no seguinte
estamos trabalhando com grupos e inclusive existe um grupo default
entaum preciso recuperar do banco todos os objetos que estão nos outros grupos mas não estão no grupo default
que seriam as sobras
ficaria mais ou menos assim:
Code:
"select * from Objeto o left join Objeto ob on ob.tela = o.tela and ob.objeto = o.objeto “and ob.grupo is null where o.grupo is not null and ob.id is null”
isso funciona perfeitamente no mysql, porem no hibernate não, pois ele não me permite definir as clausulas no join.
existem alguma outra forma de fazer isso, redefinir as clausulas do join, colocar um set dento do meu hbm ou seilá… sem usar sql nativo? do contrário não me adiantaria usar hibernate :roll:
se alguem já passou por um probema parecido, please help-me…
quanto a minha duvida é o seguinte…
preciso fazer um join com o hibernate determinando quais as clausulas do meu join
no meu caso preciso verificar se na mesma tabela existem itens em um determinado grupo que não existem em outro. por isso o “id is null” que seria o que ele me retornaria: nada.
já fui ao forum do hibernate e lá me recomendaram o uso do session.createSQLQuery(""); mas no meu caso não adiantaria, pois preciso de independencia de DB… enfim… acho que vou esperar um outro relase do hibernate neste caso… rs…
obrigado…
se alguem tiver outra sugestão, estou aceitando =]
quase isso!! resolveria se eu tivesse uma referencia da tabela para ela mesma (um set) mas eu não tenho e não há necessidade de colocar um pois só preciso disso neste momento e em nenhum outro.
vamos ver se consigo explicar melhor:
preciso fazer um consulta com join na mesma tabela porém preciso deixar explícitas as minhas cláusulas do join.
sei que o hibernate se orienta pelas minhas PKs e FKs… será que há um jeito, sem ser com sql nativo, de se fazer isso? vi no help que posso utilizar classes auxiliadoras pra fazer isso… sem que sejam pojos… mse será que precisar ser tção complexo assim?? (não que meu problema seja menos neh… )
from Modulo m join m.childs child where
m.tela = child.tela and m.objeto = child.objeto and child.grupo is null and m.grupo is not null and child.id is null
para se fazer masi condições num join com hibernate usa-se “with” logo após o join:
from Tabela t left join t.Tabela2 t2 with t.campo = t2.campo where....
outra coisa que fiz foi criar um pojo de consulta com todas as propriedades que meu pojo original tem, somente modificando como read-only (mutable=“false” na assinatuda do meu hbm)…
=]
ok??
espero ter contribuido…
valeu povo…
falow…