2014-10-02 52 views
0

我是新来的标准api,并试图建立一个选择查询,其中id匹配id。Java标准的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中(表达)是不适用的参数(路径,龙)

+3

添加的错误信息请。 – Jens 2014-10-02 11:48:56

+0

我不知道API应该如何工作,但是你在'critQuery.select(rootMovie)。(rootMovie.get(“movieId”,id);' - does' get丢失了一个右括号'实际上有两个参数? – khelwood 2014-10-02 11:51:38

+0

提出了一个错字+添加了错误 – legopiraat 2014-10-02 11:57:05

回答

0

where条件应该是这样的:

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