JPA Native sql приведение списка результатов - PullRequest
0 голосов
/ 30 марта 2012

У меня есть некоторые проблемы.Я работаю с jpa (eclipselink из glassfish 3.1) и mysql db.

Предположим, у меня есть таблица ученика с полем 'creation', которое является датой-временем.Используя sql, если я хочу выбрать все записи, созданные в '2012-03-30', независимо от времени:

select * from student where date(created) = '2012-03-30'

Хорошо, это работает.

Теперь я хотел бысделать то же самое в jpql.И я не думаю, что это возможно.Итак, я попробовал с собственным запросом:

entityManager.createNativeQuery("select * from student where date(creation) = '2012-03-30';
List<Student> students = (List<Student>)query.getResultList();
System.out.println("Result : "+students.size());
for (Student student : (List<Student>)students)
{
    System.out.println(student);
}

Я пробовал с и без приведений в строках 2 и 4, но всегда одинаковый результат:

Result : 3
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.tuto.entities.Train

Мой класс ученика имеет @аннотация сущности и все работает нормально, используя

entityManager.createQuery("select s from Student s where s.age = '25');

Что не так?

1 Ответ

3 голосов
/ 31 марта 2012

Хорошо, это решено.

entityManager.createNativeQuery("select * from student where date(creation) = '2012-03-30',Student.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...