(Hibernate) Dúvida com Query

2 respostas
R

Ae pessoal, blza?

Estou com uma dúvida de como fazer a seguinte query:

<query name = "atendimentoById"> <![CDATA[from Atendimento a left join fetch a.usuario left join fetch a.administrador left join fetch a.tipo left join fetch a.status left join fetch a.produto left join fetch a.caracteristica left join fetch a.mensagens where a.id = :id]]> </query>

Todos os relacionamentos são many-to-one com exceção das mensagens que é um set(one-to-many).

O problema é que eu preciso pegar as mensagens ordenadas e não estou conseguindo, quando eu coloco um order by na query acima o hibernate da erro. Qual a maneira correta para pegar as mensagens ordenadas?

Agradeço desde já.

2 Respostas

S

Cara seguinte vou tentar ajudar, mas não tenho trabalhado mto com hibernate to meio esquecido.
Mas acho que tem um probleminha no seguinte, você tá pegando um Atendimento e faz o join com as mensagens. Um atendimento tem várias mensagens e você quer as mensagens em ordem certo?

imagino que no bean você tenha mapeado o set que vai carregar as mensagens e se não me engano é aí (no bean) que você vai dizer que elas devem estar ordenadas e não aqui na query.
Você pode usar o BAG no lugar do set e do list e aí o mapeamento ficaria assim por exemplo

<bag 
            name="items" 
            inverse="true" 
            lazy="true"
            order-by="DATE_TIME" 
            cascade="all">
            
            <key column="BLOG_ID"/>
            <one-to-many class="BlogItem"/>
            
        </bag>

E ai você usa o order-by pra já ter as mensagens ordenadas

R

Este mapeamento era feito com Set, eu coloquei o oder-by no <set> e consegui pegar os resultados ordenados.

Vlw pela ajuda!

Criado 3 de janeiro de 2008
Ultima resposta 4 de jan. de 2008
Respostas 2
Participantes 2