Ошибка EclipseLink: Описание исключения: отсутствует дескриптор класса - PullRequest
4 голосов
/ 15 января 2012

Я просто хочу сделать простой нативный запрос с EclipseLink, но я не могу заставить его работать

    @Repository("CarsRepository")
public class JpaCarsRepository {

    @PersistenceContext 
    private EntityManager em;

    public List<Car> getCars(){
     Query q=em.createNativeQuery("SELECT id,name_car FROM CARS",Car.class);
     List<Car> results=q.getResultList();

Мой класс 'Car' определен как @Entity. (мой файл persistence.xml содержит только основные настройки соединения) Я получаю ошибку «Missing descriptor» для класса «Car».

Почему это происходит? Я видел похожий вопрос , который мне не помог.

2-й вопрос:

Если я не укажу второй параметр функции 'createNativeQuery' (Car.class), он возвращает список объектов, поэтому я могу видеть results.get (0) значение равно [1 автомобиль]. Я могу перебрать список объектов. Так что если

Object o=results.get(0)

Я мог бы создать объекты Car вручную, но я не знаю, как получить первое значение объекта, если я напечатаю o [0], чтобы получить значение 1 объекта (то есть [1 автомобиль]), которое я получаю следующая ошибка тип выражения должен быть типом массива, но разрешен к объекту

Как я могу получить доступ к каждому значению объекта?

1 Ответ

2 голосов
/ 16 января 2012

Он не рассматривает Автомобиль как сущность, похоже, что он не сканируется.Помогает ли перечисление вашей сущности внутри элемента class в файле persistence.xml?

Ваша вторая попытка возвращает список массивов объектов.Чтобы получить доступ к значениям, вы должны сначала привести одну строку набора результатов к массиву объектов:

Object[] o=results.get(0)
//types below are just guessed:
Integer id = o[0];
String name = o[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...