2012-03-30 54 views
0

我有一些問題。 我正在使用jpa(glassfish 3.1的eclipselink)和一個mysql數據庫。JPA本機sql結果列表鑄造

假設我有一個學生表,其中包含一個日期時間的「創建」字段。 使用sql如果我要選擇在「2012-03-30」,無論創建時的所有記錄:

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

好,它的工作。

現在我想在jpql中做同樣的事情。我不認爲這是可行的。 所以我試圖用本機查詢:

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

我的學生類有@Entity批註和:

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的鑄件,但總是同樣的結果嘗試一切工作正常使用

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

怎麼了?

+0

好的,已解決。等待8小時回答我的問題... entityManager.createNativeQuery(「select * from student where date(creation)='2012-03-30',Student.class); – tweetysat 2012-03-30 12:59:44

回答

3

好的,已解決。

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