Aprendendo query hibernate

Olá a todos,

Eu to começando a mexer com java e me passaram pra mexer com hibernate, mas to com alguns problemas. Será que vcs poderiam
me ajudar?

eu to tentando criar uma query mais ou menos assim:

[code]
select o from Order o left join o.items item
where item.nbItem = 1;
[code]

mas ele tá retornando os “orders” com todos os “items”.
A classe Order tem uma List de itens.
Então eu gostaria de carregar o “order” com um único “item” da lista
que é o 1.

Tem como fazer isto?

obrigada :-)[/code]

Oi.

Tente fazer a query assim:

select o from Order o where o.items.item.nbItem = 1;

Pode ser q de algum erro de HQL, mas acho q o caminho eh mais ou menos esse :smiley:

A princípio ele vai trazer todos os itens mesmo, afinal vc está buscando a ordem e ela virá completa…

Se vc quer fazer isso ao invés de pegar a ordem, pegue o item diretamente e depois, a partir do item vc chega na ordem!

Fallow

oi,

como sou novata nisto, nao estou sabendo onde procurar estas coisas.
A query que vc me disse pra fazer realmente deu erro:

expecting ‘elements’ or ‘indices’ after: item

eu to procurando sobre estes items, mas nao sei se eh isto que eh
necessario pra fazer o que eu preciso.

brigadinha :slight_smile:

Eu acho que realmente vc terá que fazer a consulta do item diretamente, acredito q o hibernate não irá montar um objeto quebrado para vc…

A ídéia de consultar o item diretamente não resolve?

oi,

entendi o que vc quis dizer. tem um probleminha.
na classe Order tem outro list que tambem de atributo que é usado
no filtro. entao, por um lado eu consigo fazer oq vc disse, resolvendo
esta parte, mas dai, como tem outro list no order, cai no meu problema.

mas obrigada pela ajuda :slight_smile:

to aprendendo muito!!

Outra coisa que vc pode fazer é trazer o Order e separar os itens após estar com ele completo…[/img]

tipo fazer o trabalho no Java, depois de persistir os dados da collection??

Isso, vc seleciona o Order e pega as listas que vc precisa, percorre as mesmas e retira os itens que vc quiser e pronto!

Vc pode usar inclusive algo como o commons-jxpath para navegar no seu grafo de objetos, caso se torne muito complexo utilizar apenas iterar pelas listas.

Fallow

brigada a todus pela ajuda :slight_smile: