이 JPA QL을 기준 작성 도구로 변환하려고합니다. JBoss 6.0.CriteriaBuilder를 사용할 때 컴파일 오류가 발생했습니다.
"SELECT ba FROM BankAccount ba WHERE ba.balance >= :amt ORDER BY ba.ownerName ASC"
나는이 튜토리얼에 따라이 코드를 작성했습니다.
public List<BankAccount> findWithBalance(int amount) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<BankAccount> cq = cb.createQuery(BankAccount.class);
Root<BankAccount> from = cq.from(BankAccount.class);
ParameterExpression<Integer> balance = cb.parameter(Integer.class);
cq.select(from);
Predicate predicate = cb.gt(from.get("balance"), balance);
cq.where(predicate);
cq.orderBy(cb.asc(from.get("ownerName")));
TypedQuery<BankAccount> query = em.createQuery(cq);
return query.getResultList();
}
는하지만, 나는 라인에서 컴파일 오류가 점점 오전 :
Predicate predicate = cb.gt(from.get("balance"), balance);
오류 :
The method gt(Expression<? extends Number>, Expression<? extends Number>) in the type CriteriaBuilder is not applicable for the arguments (Path<Object>, ParameterExpression<Integer>)
수정 된 코드로 게시물을 편집하고 현재받는 오류 메시지를 제공 할 수 있습니까? ParameterExpression 인 arg를 사용하는 경우 같은 오류가 발생하는 것을 상상할 수 없습니다. 또한 그렇게하는 것은 아마도 당신이 원하는 것이 아닙니다. –
코드와 새로운 오류 메시지가 업데이트되었습니다. 내가하고있는 일은 다양한 자습서에서 직접 나온 것이다. 기준 쿼리가 JBoss 6에서 수행 될 수 있다고 생각하지 않습니다. – RajV