Below is my entity class where I am retrieving this entity using criteria builder but I need to fetch only id
, title
and tags
.
Question.java
@Entity
@Table(name = "QUESTION_TITLE")
public class Question {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "title")
private String title;
@OneToOne(mappedBy = "question", cascade = CascadeType.ALL)
private Body body;
@ManyToMany
@JoinTable(name = "QUESTION_TAGS", joinColumns = @JoinColumn(name = "question_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "tag_id", referencedColumnName = "id"))
private Collection<Tags> tags;
@ManyToOne(targetEntity = Registration.class, fetch = FetchType.LAZY)
@JoinColumn(nullable = false, name = "user_id", referencedColumnName = "id")
private Registration registration;
}
below is my code to fetch.i am don't know how would project Tags table.
javax.persistence.criteria.CriteriaQuery<Question> query = getCriteriaBuilder().createQuery(Question.class);
Root<Question> question = query.from(Question.class);
query.multiselect(question.get("id"), question.get("title"), question.get("tags"));
List<Question> questionList = entityManager.createQuery(query).getResultList();