zoukankan      html  css  js  c++  java
  • summary -- hibernate -- select

    查询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;
    }
  • 相关阅读:
    Vue无缝滚动
    vue+Axios 实现路由拦截和登录拦截
    添加删除数组元素的方法
    日期时间相关
    Vue源码编译过程
    new关键字执行过程
    预解析
    echarts图表数据为空的时候不显示气泡
    arguments使用
    log4net介绍很全面
  • 原文地址:https://www.cnblogs.com/day1day1up/p/12930656.html
Copyright © 2011-2022 走看看