查询1:sqlQuery返回 Map
Session session = hibernateTemplate.getSessionFactory().openSession(); List<Map<String, Object>> list = null; try { StringBuilder sb = new StringBuilder(); sb.append("select s.*, c.name as className from Course c"); sb.append(" left join Student s on s.classId=c.id"); SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); list = sqlQuery.list(); } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } return list;
查询2:返回的是实体类
Session session = hibernateTemplate.getSessionFactory().openSession(); List<Map<String, Object>> list = null; try { StringBuilder sb = new StringBuilder(); sb.append("from Student"); sb.append(" where id='12345'"); Query query = session.createQuery(sb.toString()); // session.createSQLQuery(sql).addEntity(Studnet.class); list = query.list(); } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } return list;
查询3: 需创建vo类
Session session = hibernateTemplate.getSessionFactory().openSession(); List<Map<String, Object>> list = null; try { StringBuilder sb = new StringBuilder(); sb.append("select s.*, c.name as className from Course c"); sb.append(" left join Student s on s.classId=c.id"); SQLQuery sqlQuery = session.createSQLQuery(sb.toString()); sqlQuery.addScalar("id", Hibernate.INTEGER); sqlQuery.addScalar("name", Hibernate.STRING); sqlQuery.addScalar("age", Hibernate.INTEGER); sqlQuery.addScalar("className", Hibernate.STRING); sqlQuery.setResultTransformer(Transformers.aliasToBean(StudentVo.class)); list = sqlQuery.list(); } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } return list; @Data public class StudentVo { private int id; private String name; private int age; private Course course; }