因为我不太熟悉Hibernate,所以我不确定做这件事的最好方法是什么。假设我有一个具有字段monthly_salary的实体EmployeeDAO,并且我想知道该雇员的年薪,因此我创建了一个别名字段annual_salary。为了处理这个别名字段,我创建了一个类Employee来扩展EmployeeDAO。如果我这样做,我只能加载别名字段(我希望我不必为每个列字段执行addScalar ),同时加载列字段和别名字段的最佳方法是什么?请注意,我原来的sql比较复杂,我必须使用createSQLQuery函数,下面只是一个例子。
String sql = "Select e.*, e.monthly_salary*12 as annual_salary from Employee e";
List<Employee> fChk = session.createSQLQuery(sql).create
.addScalar("annual_salary", new BigDecimalType())
.setResultTransformer(Transformers.aliasToBean(Employee.class))
.list();发布于 2019-03-21 21:28:22
Ok, lucky me figure out how to solve it. Create a new Class Employee, inside it has the alias fields and EmployeeDAO obj. Problem solved
String sql = "Select e.*, e.monthly_salary*12 as annual_salary from Employee e";
List<Employee> emp = session.createSQLQuery(sql)
.addEntity("e", EmployeeDAO.class)
.addScalar("annual_salary", new BigDecimalType())
.setResultTransformer(Transformers.aliasToBean(Employee.class))
.list();
---------
public class Employee{
private EmployeeDAO e;
private BigDecimal annual_salary;
...setter and getter
}https://stackoverflow.com/questions/55276909
复制相似问题