스프링 데이터, QueryDSL 및 MySQL을 사용하고 있습니다.oneTomany 관계 기반 쿼리에 대한 queryDSL 조건부 쿼리를 작성하십시오.
질문의 주요 목적은 queryDSL 방식으로 이러한 쿼리를 수행하는 방법을 알아야합니다. 주어진 예제는 아이디어를주는 간단한 예일뿐입니다.
예를 들어 Employee와 Certificate 테이블이 두 개 있습니다. 둘 사이의 관계는
Employee (id, first_name, last_name);
Certificate (id, name, date, fk_emp);
은 무엇 FIRST_NAME에 (
이름으로 모든 직원을 반환하는 것이 포함에 대한 QueryDSL 술어해야한다, 많은 (인증서)에 ONE (직원)
있는 테이블 다음과 같다 last_name) 및 해당 날짜의 인증 날짜가 22-12-2014 22-12-2015
시도했지만 시도 할 수 없었습니다. 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은 꽤 못 생겼지 만 작동하는 것처럼 보입니다. –