Зачем использовать addcalar?
У меня есть запрос на родном sql, что-то вроде:
SQLQuery query = session.createSQLQuery("select emp_id, emp_name, emp_salary from Employee");
Результат запроса может быть использован для установки объекта сотрудника. В аналогичных строках у меня есть тот же запрос с добавлением addcalar(entity_colname).
query = session.createSQLQuery("select emp_id, emp_name, emp_salary from Employee")
.addScalar("emp_id", new LongType())
.addScalar("emp_name", new StringType())
.addScalar("emp_salary", new DoubleType());
здесь также мы должны получить результат аналогичным образом, тогда в чем преимущество использования addcalar?
С уважением, Джей
1 ответ
Вам не нужно использовать addScalar
, если вы отображаете ответ на DTO:
public class EmployeeDTO {
private final Long id;
private final String name;
private final Double salary;
public EmployeeDTO(Long id, String name, Double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public Long getId() {
return id;
}
public String getName() {
return name;
}
public Double getSalary() {
return salary;
}
}
Запрос становится:
List<EmployeeDTO> = (List<EmployeeDTO>) session.createSQLQuery(
"select new my.package.EmployeeDTO(emp_id, emp_name, emp_salary) from Employee")
.list();