HIBERNATE(MySQL 5.5): "Projections" em HQL

Segue as classes:

class Imagem{

 private Integer id;
 private byte[] imgBytes;
 private String nome;

 public Imagem(){}

 public Imagem(Integer id,String nome){
 this.id = id;
 this.nome = nome;
 }

 //GETTERS AND SETTERS

}

class Pessoa{
private Integer id;
private String nome;
private Imagem image;
//GETTERS AND SETTERS
}

Galera, eu quero trazer do banco um objeto Pessoa que contenha uma instância de Imagem, porém sem seus byte[], para não deixar o objeto “pesado”.
O Script HQL usa um construtor para fazer esses projections, ou seja, o segundo construtor de Imagem é usado para trazer o objeto sem seus byte[]:
“SELECT img FROM Imagem(id,nome) img WHERE img.id = :id”;

Agora minha dúvida é como fazer um SELECT trazendo as Pessoas com suas Imagens, porém sem os byte[] da classe Imagem, contida em Pessoa.

Esse tipo de consulta não é possível com HQL.

Aqui mostra possíveis consultas com HQL/JPQL: JPA Consultas e Dicas.

Seria necessário utilizar NativeQuery que irá retornar object.

[quote=Hebert Coelho]Esse tipo de consulta não é possível com HQL.

Aqui mostra possíveis consultas com HQL/JPQL: JPA Consultas e Dicas.

Seria necessário utilizar NativeQuery que irá retornar object.[/quote]

Muito obrigado Hebert pela informação e pelo link.
Darei meus pulos pra contornar esse problema :slight_smile:

Bom, se não me engano, isso é possível através de Criteria usando Alias e Projections, certo?

[quote=ByIvo]Bom, se não me engano, isso é possível através de Criteria usando Alias e Projections, certo?[/quote]Também.
Eu não utilizo muito criteria, utilizo mais jpql/hql mesmo. [=