为什么要使用addcalar?

时间:2015-06-22 03:19:23

标签: java sql hibernate orm native-sql

我在本机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有什么好处呢?

此致 杰

1 个答案:

答案 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();