2012-03-30 3 views
0

私はいくつか問題があります。 私はjpa(glassfish 3.1のeclipselink)とmysql dbを使って作業しています。JPAネイティブSQLの結果リストキャスト

私はdatetimeである 'creation'フィールドを持つstudentテーブルを持っているとしましょう。 私は「2012-03-30」、どんなにに時間を作成したすべてのレコードを選択したい場合は、SQLを使用して:

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

[OK]を、その作業を。

今、私はjpqlで同じことをしたいと思います。そして私はそれがポーズブルだとは思わない。

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

私の学生のクラスは@Entityアノテーションを持っており、私はライン2と4で鋳物が、常に同じ結果ととせずに試してみました

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); 
} 

: は、だから私は、ネイティブクエリで試してみましたすべて正常に動作しています

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

何が問題なのですか?

+0

[OK]を解決しました。私の質問に答えるために8時間待っています... entityManager.createNativeQuery( "select * from student where date(creation)= '2012-03-30'、Student.class); – tweetysat

答えて

3

[OK]を解決しました。

entityManager.createNativeQuery("select * from student where date(creation) = '2012-03-30',Student.class);