Select parent and only some fields from child in @OneToMany relationships using JPA and Criteria Builder
Implemented one to many relationship and select parent and child I have a onetomany relationship. Using criteria builder, i need to get parent and all related childs but selecting only some fields from each child.
@Entity
@Table(name="transaction_status")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TransactionStatus implements Serializable {
@Id
@Column(name = "id")
@JsonProperty("id")
public String id;
@SerializedName("status")
public String status;
@Column(name="lastUpdatedDate")
@JsonProperty("lastUpdatedDate")
@SerializedName("lastUpdatedDate")
private Date lastUpdatedDate;
@JsonProperty("generatedAt")
@SerializedName("generatedAt")
@JsonIgnore
private Date generatedAt;
@JsonProperty("invoices")
@SerializedName("invoices")
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name="transactionstatusId",referencedColumnName = "xmlFilename")
private List<InvoiceTransaction> invoiceTransactions = new ArrayList<>();
}
@Entity
@Table(name="invoice_transaction")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class InvoiceTransaction implements Serializable {
@Column(name = "status", nullable = false)
@JsonProperty("status")
@SerializedName("status")
private String status;
@Column(name = "originalStatus", nullable = false)
@JsonProperty("originalStatus")
@SerializedName("originalStatus")
private String originalStatus;
@Column(name = "errorMessage")
@JsonProperty("errorMessage")
@SerializedName("errorMessage")
private String errorMessage;
@Column(name = "generatedAt" )
@JsonProperty("generatedAt")
@SerializedName("generatedAt")
private Date generatedAt;
}
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<TransactionStatus> cq = builder.createQuery(TransactionStatus.class);
Root<TransactionStatus> rootTrnStatus = cq.from(TransactionStatus.class);
List<TransactionStatus> resultList = entityManager.createQuery(cq).getResultList();
this implementation, gives me list of Transactionstatus objetc with list of its childs. what im seraching to get is: list of Transactionstatus object with list of its childs with olny status and errorMessage fileds. How can i get this result using Crtiteria builder? thank you