Java 不循环地从HQL检索联接表结果
我试图从数据库中检索联接表的结果,我当前的代码是这样的 质疑 代码Java 不循环地从HQL检索联接表结果,java,hql,Java,Hql,我试图从数据库中检索联接表的结果,我当前的代码是这样的 质疑 代码 DBServiceImpl是您自己编写的吗?您的问题是hql,但看起来更像sql?您好,先生,请查看我的编辑。我已经添加了executeListSQLQuerySo,您使用的是Hibernate,但出于某种原因使用的是本机SQL?您可以直接在这里使用hibernate for ORM来简化工作吗?本机SQL如果使用得当,性能可能会更高。请参阅示例:如何将本机SQL结果直接映射到HibernathOK中的实体。您的实体就是我要查找
DBServiceImpl是您自己编写的吗?您的问题是hql,但看起来更像sql?您好,先生,请查看我的编辑。我已经添加了executeListSQLQuerySo,您使用的是Hibernate,但出于某种原因使用的是本机SQL?您可以直接在这里使用hibernate for ORM来简化工作吗?本机SQL如果使用得当,性能可能会更高。请参阅示例:如何将本机SQL结果直接映射到HibernathOK中的实体。您的实体就是我要查找的实体。DBServiceImpl是您自己编写的代码吗?您的问题是hql,但看起来更像sql?您好,先生,请查看我的编辑。我已经添加了executeListSQLQuerySo,您使用的是Hibernate,但出于某种原因使用的是本机SQL?您可以直接在这里使用hibernate for ORM来简化工作吗?本机SQL如果使用得当,性能可能会更高。请参阅示例:如何将本机SQL结果直接映射到HibernathOK中的实体。您的实体就是我要寻找的那个实体。
SELECT a.Name,a.employeeNo,b.status,b.amount FROM Tbemployee a left join Tbtransact b on a.employeeno = b.employeeno WHERE b.status = '7'
DBService dbsrvc = DBServiceImpl();
List<EmployeeForm> formList = new ArrayList<EmployeeForm>();
List<Object[]> list = dbsrvc.executeListSQLQuery(query, params);
for(Object[] row: list){
EmployeeForm form = new EmployeeForm();
form.setEmpno(row[0]);
form.setName(row[1]);
form.setStatus(row[2]);
form.setAmount(row[3]);
formList.add(form);
}
public List executeListSQLQuery(String sQuery, Map parameters) {
// ---
EMPLOYEEDB service = (EMPLOYEEDB) RuntimeAccess.getInstance().getServiceBean(
DBNAME);
try {
service.begin();
Session session = service.getDataServiceManager().getSession();
SQLQuery query = session.createSQLQuery(sQuery);
query.setProperties(parameters);
List list = query.list();
service.commit();
// ---
return list;
} catch (Exception ex) {
logger.warn("Error executing query", ex);
service.rollback();
}
return null;
}