Hibernate - createSQLQuery

Olá a todos !

Estou usando o hibernate como framework de persistência e para um processo específico consegui fazer funcionar mas o jeito que funcionou não me agradou muito.

Suponham que eu tenha uma query a ser executada um tanto quanto complexa (imaginemos unions, minus, etc), nem todas as “entidades” envolvidas nessa query estão sendo persistida pelo Hibernate e que eu não quero transformá-la em uma consulta HQL. Sendo assim, devo utilizar-me do método createSQLQuery, certo ?

Minha dúvida está aí: eu só consigo retornar no meu select campos que estejam mapeados no Hibernate ?? Eu não consigo por exemplo, fazer um select como eu bem entender e trazer apenas os campos que me interessam ??

Para ilustrar, imagine que eu tenha uma consulta na qual eu preciso de um ID de uma notícia, apenas o ID. Do jeito que eu consegui fazer, eu preciso colocar no select TODOS os campos mapeados na classe notícia. Não tem como eu trazer apenas os campos que me interessam, sei lá, tudo como Object e aí eu me viro ??

Valew !!

[]'s

Leandro

select noticia.id,noticia.titulo from Noticia, mas o id e titulo precisam estar declarados no xml.

O problema disso é que ele obtem todos os dados de relacionamento, mesmo que eu não os use na consulta em questão.

Nesse caso então, eu deveria ter um bean para persistência (com relcionamento e tudo mais) e outro só para consulta (com a intenção de evitar selects desnecessários) ??

O problema disso é que ele obtem todos os dados de relacionamento, mesmo que eu não os use na consulta em questão.

Nesse caso então, eu deveria ter um bean para persistência (com relcionamento e tudo mais) e outro só para consulta (com a intenção de evitar selects desnecessários) ??

[quote=“leguimas”]O problema disso é que ele obtem todos os dados de relacionamento, mesmo que eu não os use na consulta em questão.

Nesse caso então, eu deveria ter um bean para persistência (com relcionamento e tudo mais) e outro só para consulta (com a intenção de evitar selects desnecessários) ??[/quote]

nao. vc precisa de um só xml. Pesquise por lazy=true e proxies na documentação do Hibernate.

resumindo, o Hibernate trás automaticamente os relacionamentos a nao ser que vc diga para ele nao fazer isso. Entao ele só vai buscar na base quando vc usar…