Java 如何在JPA中检索记录

Java 如何在JPA中检索记录,java,jpa,Java,Jpa,我有一个在db(MySQL)+eclipselink中有一些值的记录。我正在使用以下代码检索该记录 EntityManager em = DBUtil.getEntityManager(); TypedQuery<User> query = em.createQuery("select u from User u where u.email='tomj@abc.com'", User.class); List<User> results = query.getResul

我有一个在db(MySQL)+eclipselink中有一些值的记录。我正在使用以下代码检索该记录

EntityManager em = DBUtil.getEntityManager();
TypedQuery<User> query =  em.createQuery("select u from User u where u.email='tomj@abc.com'", User.class);
List<User> results = query.getResultList();
for(User u:results){
  System.out.println(u.getEmail());
}
EntityManager em=DBUtil.getEntityManager();
TypedQuery query=em.createQuery(“从用户u中选择u,其中u.email=”)tomj@abc.com“,User.class);
List results=query.getResultList();
用于(用户u:结果){
System.out.println(u.getEmail());
}
我的示例数据库中的记录有一行带有电子邮件'tomj@abc.com'. 当我打印列表时,仍然会打印空白/空列表。我想我在什么地方出错了。谁能告诉我是什么错误吗


PS:我还尝试使用getSingleResult,它会引发异常。

我认为您的查询可能有错误,您是否尝试通过java代码以外的其他程序运行查询,以查看它是否返回正确的记录?我认为查询应该类似于:
“select*from User where User.email=”tomj@abc.com'"
如果我使用普通sql,它会返回正确的记录,这是我第一次尝试JPA。User.email抛出异常能否共享异常?是否尝试过参数方法
em.createQuery(“从用户u中选择u,其中u.email=:email”,User.class)。setParameter(“email”,”tomj@abc.com");JPQL字符串在我看来很好。例外情况怎么说?