Usando ResultTransformer personalizado na sua consulta com Hibernate
No post “Como retornar e preencher apenas alguns atributos da entidade na consulta com Hibernate” mostrei como usar a classe AliasToBeanResultTransformer junto com HQL. A classe fornecida pelo próprio Hibernate é realmente muito útil, acontece que se você tem alguma consulta SQL através do método createSQLQuery (da classe org.hibernate.Session), pode ter passado pelo problema que tive essa semana. Infelizmente a classe AliasToBeanResultTransformer não funciona com SQLQuery quando, entre os atributos retornados, há Enumerations. Outro problema é quando temos atributos de entidades relacionadas. A reflexão empregada por essa classe auxiliar não consegue instanciar e preencher as dependências entre a classe principal e seus relacionamentos.
Vamos ao exemplo abaixo: