【问题标题】:Java criteria API - select * from table where id = idJava 标准 API - 从 id = id 的表中选择 *
【发布时间】: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


【解决方案1】:

您的where 条件应如下所示:

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

【讨论】:

    猜你喜欢
    • 2020-02-11
    • 2023-03-19
    • 2013-08-11
    • 1970-01-01
    • 2014-01-12
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多