#jpa-2.0
#jpa-2.0
Вопрос:
Я совсем новичок в JPA и использую учебник Apress JPA2, чтобы изучить его. Я пытался выполнить первый пример из книги. Следующая строка кода выдает ошибку:
Запрос TypedQuery = em.CreateQuery(«ВЫБРАТЬ e ИЗ Employee e», Employee.class );
говорят, что TypedQuery не может быть преобразован в тип. После некоторых усилий я понял, что использую JPA версии 1, которая не содержит TypedQuery, а просто интерфейс запроса.
Мой вопрос заключается в том, существует ли эквивалентный оператор в JPA версии 1. Пожалуйста, помогите. Заранее спасибо.
Ответ №1:
Поскольку TypedQuery был введен с JPA-2.0, необходимо перейти на интерфейс запроса.
1) Собственный запрос для сопоставления типа результата для запроса (потеря переносимости).
Query selectQuery = entityManager.createNativeQuery("SELECT
e FROM Employee e", Employee.class);
2) Создание запроса и затем явное приведение его к типу результата (более предпочтительно).
Query selectQuery = entityManager.createQuery("SELECT e FROM Employee e")
List<Employee> employees = (List<Employee>)selectQuery.getResultList(); //Multiple Result
Employee employee = (Employee)selectQuery.getSingleResult(); //Single Result