JPA Criteria API获取特定字段

时间:2018-05-31 11:02:45

标签: java jpa criteria

我有2个映射实体,我想使用 Criteria API 获取特定字段。可以使用root.join(...)方法,但我想使用root.fetch(...)

这是我的代码。

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Post> q = cb.createQuery(Post.class);
Root<Post> root = q.from(Post.class);
Join<Post, PostComment> join = root.join(Post_.comments);
q.multiselect(root.get(Post_.id),join.get(PostComment_.review));
return em.createQuery(q).getResultList();

它工作正常,只返回2个字段ID和审核,但返回的数据是重复的,每个帖子只有一个帖子评论。(就像数据库连接一样)。我想这样做:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Post> q = cb.createQuery(Post.class);
Root<Post> root = q.from(Post.class);
Fetch<Post, PostComment> fetch = root.fetch(Post_.comments);
q.multiselect(root.get(Post_.id),fetch.get(PostComment_.review));
return em.createQuery(q).getResultList();

fetch.get()不是函数。我该怎么办?

0 个答案:

没有答案