2012-03-30 2 views
0

몇 가지 문제가 있습니다. japanese (glassfish 3.1의 eclipselink)와 mysql db로 작업하고 있습니다.JPA 네이티브 SQL 결과 목록 캐스팅

제가 '생성'필드가 datetime 인 학생 테이블이 있다고 가정 해 보겠습니다. 내가 '2012-03-30', 어떤 문제에 시간을 만들어 모든 레코드를 선택하려면 SQL을 사용하여 :

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 주석을 가지고 : 나는 라인 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

확인되었습니다. 내 onw 질문에 대답하기 위해 8 시간을 기다리고 있습니다 ... entityManager.createNativeQuery ("select * from student where date (creation) = '2012-03-30', Student.class); – tweetysat

답변

3

그래, 해결되었습니다.

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