Java标准API - 从表中选择*,其中id = id

时间:2014-10-02 11:45:58

标签: java sql criteria-api

我是条件api的新手,我正在尝试构建一个id匹配id的select查询。

我想建立这个:

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

到目前为止,我将输入变量id作为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);

这会产生错误并且无法正常工作。任何想法如何使它工作?

错误: CriteriaQuery类型中的(Expression)不适用于参数(Path,Long)

的方法

1 个答案:

答案 0 :(得分:0)

您的where条件应如下所示:

.where(criteriaBuilder.equal(rootMovie.get("movieId"), id));