У меня есть 2 сущности
@Entity
public class DeptEmployee {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private String employeeNumber;
private String designation;
private String name;
@ManyToOne
private Department department;
// constructor, getters and setters
}
@Entity
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private String name;
@OneToMany(mappedBy="department")
private List<DeptEmployee> employees;
public Department(String name) {
this.name = name;
}
// getters and setters
}
Я знаю, что могу извлечь DTO Result
следующим образом:
public class Result {
private String employeeName;
private String departmentName;
public Result(String employeeName, String departmentName) {
this.employeeName = employeeName;
this.departmentName = departmentName;
}
public Result() {
}
// getters and setters
}
Query<Result> query = session.createQuery("select new com.baeldung.hibernate.pojo.Result(m.name, m.department.name)"
+ " from com.baeldung.hibernate.entities.DeptEmployee m");
List<Result> results = query.list();
(благодаря примеру в этой статье: https://www.baeldung.com/hibernate-query-to-custom-class)
Теперь я хотел бы извлечь DTO, которое содержит название отдела и список имен сотрудников в этом отделе.
public class Result2 {
private String departmentName;
private List<String> employeeNames;
// Constructor ???
public Result2() {
}
// getters and setters
}
Мои вопросы:
- это то, что возможно?
- что такое конструктор в
Result2
? - что такое hql-запрос для извлечения этого
Result2
?