我有一个MySQL数据库,其中包含一个名为User
的表。它有两列。一个被命名为ID
,另一个是EMAIL
。它有更多的专栏,但与这个问题无关。JPA通过参数查找除了ID
在我的DAO对象中,我想创建一个名为findByEmail
的方法。它目前看起来像这样:
@Override
public User findByEmail(String email) {
Object obj = em.createQuery("FROM User WHERE EMAIL LIKE :email").setParameter("email", email).getSingleResult();
User user = (User)obj;
return user;
}
这给出了一个空指针异常。我的猜测是,我的查询是错误的。任何人都可以帮我解决这个问题吗?
'EntityManager'为空? – vels4j
通常JPA查询将会像“select r FROM User r WHERE r.EMAIL =:email”,因为你不能像电子邮件中那样放入 – vels4j
这是无效的JPQL(请检查规范中的“SELECT”部分)。很显然你可能会使用一些(Hibernate)实现,但如果你是这样的话,那么应该在任何问题中提及 – DataNucleus