Używam danych sprężynowych, QueryDSL i MySQL.Zapisywanie kwerendy kwerendy DSL dla zapytania opartego na relacji jednaTomania
Głównym celem pytania jest wiedzieć, jak wykonać takie zapytanie w sposób queryDSL. Podany przykład jest tylko prostym przykładem, aby dać pomysł.
Załóżmy na przykład, że istnieją dwie tabele Pracownik i certyfikat. Relacja między nimi jest jeden (Employee) do wielu (certyfikat)
Poniżej znajdują się stoły,
Employee (id, first_name, last_name);
Certificate (id, name, date, fk_emp);
Jaki powinien być orzecznikiem QueryDSL dla
Wracając wszystkim pracownikom nazwa zawiera (w first_name i last_name) i od tego wyniku, którego certyfikacja pomiędzy 22-12-2014 a 22-12-2015
Próbowałem, ale nie mogłem zobacz, jak mogę powtórzyć każdy certyfikat każdego pracownika w sposób QueryDSL i zwróć listę pracowników.
Twoja odpowiedź będzie bardzo ceniona !!
EDIT
Poniżej znajdują się podmioty,
@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;
}
Zobacz moją zaktualizowaną odpowiedź. Wygenerowany SQL jest dość brzydki, ale wygląda na to, że działa. –