Tôi đang sử dụng dữ liệu mùa xuân, QueryDSL và MySQL.Viết truy vấnTruy vấn truy vấn vị ngữ cho truy vấn dựa trên quan hệ OneTany
Mục đích chính của câu hỏi là biết cách thực hiện truy vấn như vậy theo cách queryDSL. Ví dụ được đưa ra chỉ là một ví dụ đơn giản để đưa ra ý tưởng.
Ví dụ: có hai bảng Nhân viên và Chứng chỉ. Mối quan hệ giữa hai là ONE (Employee) để NHIỀU (Certificate)
Sau đây là bảng,
Employee (id, first_name, last_name);
Certificate (id, name, date, fk_emp);
gì nên là vị QueryDSL cho
Trở tất cả các nhân viên có tên chứa (trong first_name và last_name) và từ kết quả đó có chứng nhận từ ngày 22-12-2014 đến 22-12-2015
Tôi đã thử nhưng không thể có được cách tôi có thể lặp qua từng chứng chỉ của mỗi nhân viên trong cách QueryDSL và danh sách trả về của nhân viên.
Phản hồi của bạn sẽ được đánh giá cao !!
EDIT
Sau đây là các thực thể,
@Entity
@Table(name = "EMPLOYEE")
class Employee {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "FIRST_NAME")
private String firstName;
@Column(name = "LAST_NAME")
private String lastName;
@OneToMany(mappedBy = "employee", cascade = CascadeType.ALL)
private List<Certificate> certificates = new ArrayList<>();
}
@Entity
@Table(name = "CERTIFICATE")
class Certificate {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "CERTIFICATE_NAME")
private String certificateName;
@Column(name = "DATE")
private Date date;
@ManyToOne
@JoinColumn(name = "REF_EMPLOYEE")
private Employee employee;
}
Xem câu trả lời của tôi cập nhật. SQL được tạo ra khá xấu xí nhưng có vẻ như nó hoạt động. –