Cast em CreateSQLQuery

Olá Galera
Tenho a seguinte chamada a uma classa DAO para realizar uma query via createSQLQuery pelo Hibernate:

List<AgendaVO> schedules = agendaDAO.consult(agendaVO);
Faço um Cast para ao invés do retorno ser um array de objetos a query me retornar uma list do tipo AgendaVO

List<AgendaVO> schedules = (List<AgendaVO>) session.createSQLQuery("select * from cliniconn.agenda where agenda.exam_date = '"+agendaVO.getExamDate()+"'").list();
Preciso de uma list do tipo AgendaVO para mostrar essa list via Displaytag.
Porém esse cast não é realizado.

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to br.com.daykohealthcare.clinicasabedotti.model.AgendaVO
Alguem sabe como posso realizar esse cast e resolver esse pequeno problema?

Abraços.

Em mensagens de erro, “[Ljava/lang/Object;” é a mesma coisa que “Object[]”. Portanto, você tem um Object[], que nunca poderá ser convertido diretamente via cast para um List<AgendaVO>. Você terá de pegar uma variável Object[] e ir manualmente adicionando cada objeto (supondo que o objeto seja um AgendaVO) para um List<AgendaVO>.

Creio que se você utilizar Arrays.asList(Object[]) funcione, no lugar de fazer um foreach.

Sim, imaginei que não seria possível mesmo o Cast.

Arrays.asList(Object[]) !? de que maneira pensou ?

Desencana, usando asList você vai ter que percorrer o array de qualquer jeito.

Tem idéia como ficaria isso ?

Que tipo de Session é essa? É a Session do Hibernate?
Se for, o seu problema é inconsistência entre dados do banco e o código/mapeamento.

Sim é uma session do hibernate.
Fato é que preciso de uma rotina que independente do mapeamento
pegue uma list de objetos e crie uma list de objetos no caso AgendaVO.
Porém to meio sem idéia pra escrever ela.

Acabei resolvendo modificando minha DAO e abandonando CreateQuery ou CreateSQLQuery pelo session.save salvando o próprio objeto POJO AgendaVO mapeado com a minha tabela. :wink: Obrigado a todos.