2014-10-02 3 views
0

Я новичок в критериях api и пытаюсь построить запрос выбора, где id совпадает с id.API критериев Java - выберите * из таблицы, где id = id

Я хотел бы построить так:

SELECT * FROM movie WHERE id = id(input var) 

До сих пор я это с входным переменным ид как long:

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); 
    CriteriaQuery<Movie> critQuery = criteriaBuilder.createQuery(Movie.class); 
    Root<Movie> rootMovie = critQuery.from(Movie.class); 
    critQuery.select(rootMovie).where(rootMovie.get("movieId"), id); 

Это создаст ошибки и не работает. Любые идеи, как заставить его работать?

ошибка: Метод где (Expression) в типе CriteriaQuery не применяется для аргументов (Path, Long)

+3

Добавить сообщения об ошибках Пожалуйста. – Jens

+0

Я не знаю, как должен работать API, но вы не видите закрытую скобку в 'critQuery.select (rootMovie) .where (rootMovie.get (" movieId ", id);' - does 'get 'фактически принимают два аргумента? – khelwood

+0

сделал небольшую опечатку + добавил ошибку – legopiraat

ответ

0

Ваше where условие должно выглядеть следующим образом:

.where(criteriaBuilder.equal(rootMovie.get("movieId"), id)); 
Смежные вопросы