برای این کار شما باید یک ResultTransformer بنویسید:
public class CustomerModelResultTransformer implements ResultTransformer {
@Override
public Object transformTuple(Object[] rowData, String[] aliasNames) {
CustomerModel customerModel = new CustomerModel();
for (int i = 0; i < aliasNames.length; i++) {
if (aliasNames[i].equals("NAME")) {
customerModel.setName((String) rowData[i]);
}
}
return customerModel;
}
@Override
public List transformList(List list) {
return list;
}
}
و سپس با استفاده از متد setResultTransformer نوع کلاس خروجی را مشخص کنید (که می تواند کلاسی غیر از Hibernate Entity باشد):
Query query = session.createSQLQuery("select * from CUSTOMER")
.setResultTransformer(new CustomerModelResultTransformer());
List<CustomerModel> result = query.list();
for (CustomerModel customerModel : result) {
System.out.println("customer name = "+customerModel.getName());
}