Todo esto con el fin de evitarte usar ciclos para los respectivos llenados.
La primera forma es por entidad(una clase ya mapeada)
sess.createSQLQuery("SELECT * FROM DOGS").addEntity(Dog.class);
La segunda es llamada entidades no administradas,
por ejemplo si tienes un VO o un DTO.
sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM DOGS") .setResultTransformer(Transformers.aliasToBean(DogVO.class))
y dejo el link por si quieres saber más acerca de este tema.
http://docs.jboss.org/hibernate/orm/3.6/reference/es-ES/html/querysql.html