JPQL을 사용하여이 데이터베이스에 이미 전자 메일이 있는지 확인하는이 방법의 문제점을 파악하려고합니다. 작동하지 않습니다. 누군가가 외모를 가질 수 있습니까? 아니면 다른 대체 질의를 더 간단하게?DB (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 (이클립스 지속성 서비스 - 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