我试图找出使用JPQL验证电子邮件是否已存在于数据库中的此方法的问题,由于某些原因不起作用。有人可以看看?或者给另一个替代查询更简单?查询需要检查数据库中是否已存在电子邮件(Java Persistence API)
@Override
public boolean emailAlreadyExists(String value) {
Query checkEmailExists = em.createQuery("SELECT COUNT(b.email) FROM "
+ Buyer.class.getName() + " b WHERE email = :emailparam");
checkEmailExists.setParameter("emailparam", value);
long matchCounter = 0;
matchCounter = (Long) checkEmailExists.getSingleResult();
if (matchCounter > 0) {
return true;
}
return false;
}
这是控制台输出的一部分:
所致:异常[的EclipseLink-8024](Eclipse持久服务 - 2.0.1.v20100213-r6600):org.eclipse.persistence。 exceptions.JPQLException 异常说明:解析查询的语法错误[SELECT COUNT(b.email)FROM entities.Buyer b WHERE b.email =:emailparam],第1行,第35列:语法错误[[]]。 内部例外:MismatchedTokenException(83!= 78)
我确定它必须对语法做些什么。但是,我犯了什么错误?
Tnx为您的答案。这是正确的,但只有一件小事没有工作,但这就是主意。这里是工作查询:SELECT COUNT(b.email)FROM Buyer b WHERE b.email =:emailparam – sfrj 2011-03-07 08:34:31