我遇到了一些问题。 我正在使用jpa(来自glassfish 3.1的eclipselink)和一个mysql db。
假设我有一个带有“创建”字段的学生表,该字段是日期时间。 如果我想选择在'2012-03-30'上创建的所有记录,请使用sql,无论时间:
select * from student where date(created) = '2012-03-30'
好的,它的工作。
现在我想在jpql中做同样的事情。我不认为这是可行的。 所以我尝试了一个原生查询:
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行尝试使用和不使用铸件,但总是使用相同的结果:
Result : 3
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.tuto.entities.Train
我的学生课程有@entity注释,一切正常,使用
entityManager.createQuery("select s from Student s where s.age = '25');
怎么了?
答案 0 :(得分:3)
好的,它已经解决了。
entityManager.createNativeQuery("select * from student where date(creation) = '2012-03-30',Student.class);