我在本机sql中有一个查询,例如:
SQLQuery query = session.createSQLQuery("select emp_id, emp_name, emp_salary from Employee");
查询结果可用于设置员工对象。 在类似的行上,我有相同的查询附加addscalar(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());
这里我们也必须以类似的方式获得结果,那么使用addscalar有什么好处呢?
此致 杰
答案 0 :(得分:0)
如果您将回复映射到DTO,那么您真的不需要使用addScalar
:
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();