我正在使用spring-data,QueryDSL和MySQL。爲一個基於Tomany關係的查詢寫入queryDSL謂詞查詢
問題的主要目的是要知道如何以queryDSL方式做這樣的查詢。給出的例子只是一個簡單的例子來給出想法。
舉例說,有兩張表Employee和Certificate。兩者之間的關係是(員工)許多(證書)
下面是桌子,
Employee (id, first_name, last_name);
Certificate (id, name, date, fk_emp);
應該是什麼
與名稱返回所有員工包含QueryDSL謂詞(在FIRST_NAME和last_name),並從那個結果的日期22日至2014年12月22日至2015年12月22日之間的認證
我試過了,但不能瞭解如何以QueryDSL方式遍歷每位員工的每個證書並返回員工列表。
您的迴應將非常感謝!
編輯
以下是實體,
@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;
}
看到我更新的答案。生成的SQL非常醜陋,但看起來像它的工作。 –