[Ljava.lang.Object; cannot be cast to java.util.List

Pessoal, boa tarde!

Poderiam me dar uma ideia do que poderia fazer para solucionar este meu erro: [Ljava.lang.Object; cannot be cast to java.util.List
Estou tentando fazer uma conversão de uma versão de server p/ outro, mas não queria mudar por enquanto a estrutura.

Bom, vlw por qualquer ajuda!

public class ColecoesJpaController {

    @Resource
    private UserTransaction utx = null;
    @PersistenceUnit(unitName = "Colecoes")
    private EntityManagerFactory emf = null;

    public EntityManager getEntityManager() {
        return emf.createEntityManager();
    }
public List findColecoesEntities() {
        EntityManager em = getEntityManager();
        try {
//Testar essa ação//
            Query q = em.createNativeQuery("SELECT "
                    + "TBD.DELTC CODIGO, DESCRICAO, "
                    + "CASE WHEN TB1.DELTC <> '' THEN 'S' ELSE '' END PEDIDO, "
                    + "FROM CODIGO ");

            return q.getResultList();

        } catch (Exception e) {
            System.out.println(e.getClass() + " Erro ao listar as tabelas.\n" + e.getMessage());
            return null;
        } finally {
            em.close();
        }
    }

Por que você captura Exception e não as exceções específicas declaradas no método getResultList?

Por que você retorna null no teu bloco catch? Não faça isso. Ou lance uma exceção (encapsulando a existente) ou retorne algo que não vá gerar um NullPointerException quando alguém for usar. Por exemplo, uma lista vazia. Eu optaria por lançar uma exceção.

Leia:


tem algo estranho ai.

uma das razões pelas quais eu nao retorno null é pq isso é fonte de NullPointerException.

agora se vc sabe que teve esse “erro” vc deveria tentar imprimir a StackTrace da exception e investigar o que realmente aconteceu. estou convencido que o problema é outro

Sei que é antigo esse post, mas acho que posso ajudar. Mapeie todas as possíveis exceções que podem ocorrer, inclusive NullPointerException, ou trate o retorno null do List.