Ich habe ein Problem. Ich arbeite mit jpa (eclipselink von glassfish 3.1) und einer mysql db.JPA Native SQL Suchergebnis Casting
Angenommen, ich habe eine Schüler-Tabelle mit einem "creation" -Feld, das ein datetime ist. Mit SQL, wenn ich alle Datensätze auf ‚2012-03-30‘ erstellt auswählen möchten, unabhängig von der Zeit:
select * from student where date(created) = '2012-03-30'
Ok, seine Arbeiten.
Jetzt möchte ich das gleiche in jpql tun. Und ich denke nicht, dass es möglich ist. Also habe ich versucht, mit einer nativen Abfrage:
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);
}
I mit und ohne die Gussteile in Linien versucht, 2 und 4, aber immer das gleiche Ergebnis:
Result : 3
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.tuto.entities.Train
Mein Student-Klasse hat die @Entity Annotation und Alles funktioniert gut mit
entityManager.createQuery("select s from Student s where s.age = '25');
Was ist los?
Ok, es ist gelöst. Warten Sie 8 Stunden, um meine onw Frage zu beantworten ... entityManager.createNativeQuery ("wählen Sie * vom Studenten aus, wo Datum (Schaffung) = '2012-03-30', Student.class); – tweetysat