2012-03-30 52 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);