我試圖找出使用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