2014-01-21 4 views
0

Я работаю с JPA, реализованным с помощью EclipseLink. Мне нужно сделать собственный SQL-запрос о моем объекте MRAEmpleado.Ошибка кастинга с помощью собственного запроса SQL JPA Eclipse Ссылка

Это мой код:

private List<MRAProyecto> ordenarProyectos(){ 
     Query q = em.createNativeQuery("Select *From MRAProyecto ORDER BY PROY_ID"); 
     return (List<MRAProyecto>)q.getResultList(); 
    } 
     List<MRAProyecto> consultaProyectos = startup.ordenarProyectos(); 
     System.out.println("Lista de proyectos ordenados por su identificador"); 
     for (MRAProyecto proyecto:(List<MRAProyecto>)consultaProyectos){ 

      System.out.println(proyecto.toString()); 
     } 

, но эта ошибка запускается, когда я исполняю мое заявление:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to entity.MRAProyecto 
at Startup.main(Startup.java:39) 

Я пытался со всеми литейными максимальными возможностями, но ошибка литой не исчезает ,

ответ

0

Используйте следующий вызов для разбора.

Запрос createNativeQuery (java.lang.String sqlString, java.lang.Class resultClass) Создайте экземпляр запроса для выполнения собственного SQL-запроса.

http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#createNativeQuery%28java.lang.String,%20java.lang.Class%29

Вам нужно определить в resultSetClass в entitiy вы хотите получить

+0

Где я могу определить сущность? Я не очень хорошо понимаю, я сделал System.out.println (q.getResultList(). Get (0) .getClass()); и этот класс печати [Ljava.lang.Object; Не должен быть MRAProyecto ?? – user3118887

+0

Запрос q = em.createNativeQuery («Выберите * From MRAProyecto ORDER BY PROY_ID»); используйте Query q = em.createNativeQuery («Выберите * From MRAProyecto ORDER BY PROY_ID», MRAProyecto); Прочтите этот http://www.oracle.com/technetwork/articles/vasiliev-jpql-087123.html в разделе «Использование собственных SQL-запросов». Но в основном вы должны использовать второй параметр, который определяет полный класс объектов – Koitoer

+0

Невозможно, компилятор даст мне одну ошибку. Я добавляю моментальный снимок: http: //imagizer.imageshack.us/v2/800x600q90/203/zbcj.jpg – user3118887

Смежные вопросы