【发布时间】:2012-11-12 15:51:12
【问题描述】:
我有一个 MySQL 数据库,其中包含一个名为 User 的表。它有两列。一个名为ID,另一个名为EMAIL。它有更多的列,但这与问题无关。
在我的 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;
}
这给出了一个空指针异常。我的猜测是,我的查询是错误的。谁能帮我解决这个问题?
【问题讨论】:
-
通常 JPA 查询会像“select r FROM User r WHERE r.EMAIL = :email”,因为您不能在电子邮件中输入类似
-
这是无效的 JPQL(检查“SELECT”部分的规范)。显然,您可能正在使用一些(Hibernate)特定于实现的,但是如果您是,那么在任何问题中都应该提到这一点
标签: java mysql database jpa dao