【发布时间】:2014-11-27 09:34:42
【问题描述】:
我是标准 api 的新手,我正在尝试构建一个 id 匹配 id 的选择查询。
我想建造这个:
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 类型中的 where(Expression) 方法不适用于参数 (Path, Long)
【问题讨论】:
-
请添加错误信息。
-
我不知道 API 应该如何工作,但您在
critQuery.select(rootMovie).where(rootMovie.get("movieId", id);中缺少一个右括号——get是否实际上有两个参数? -
打了一点错字 + 添加了错误
标签: java sql criteria-api