zoukankan      html  css  js  c++  java
  • Hibernate使用sql语句实现多表关联查询

    /** 
        * <查找list> 
        *  
        * @return 返回页面需要显示的数据 
        */  
       @SuppressWarnings("unchecked")  
       public List<Map<String, String>> findUserDept()  
       {  
           return ht.executeFind(new HibernateCallback()  
           {  
               public Object doInHibernate(Session session)  
                   throws HibernateException,  
                       SQLException  
               {  
                   String sql =  
                       "SELECT u.username name,u.password p,d.name deptName "  
                           + "FROM usertable u LEFT JOIN depttable d ON u.dept_id=d.id";  
                   Query query =  
                       session.createSQLQuery(sql)  
                           .addScalar("name", Hibernate.STRING)  
                           .addScalar("p", Hibernate.STRING)  
                           .addScalar("deptName", Hibernate.STRING)  
                           .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);//返回List<Map>其中map的key就是我们定义的别名  
                   return query.list();  
               }  
                 
           });

    测试代码

    List<Map<String, String>> listUserDept = userService.findUserDept();  
          // 循环  
          for (Map<String, String> map : listUserDept)  
          {  
              System.out.println(map.get("name"));//key是我们写sql语句的别名  
              System.out.println(map.get("p"));  
              System.out.println(map.get("deptName"));  
              System.out.println("---------------------------------");  
          }  
      }  
  • 相关阅读:
    转移阵地啦
    春之感--3月10日
    小鱼儿
    关于时间方法(date和simpledateformat)的实验
    hadoop练习处理地震数据
    出现log4j.properties问题
    远程hadoop集群方法
    小W学物理
    灵知的太阳信仰
    Blue
  • 原文地址:https://www.cnblogs.com/andy-alone/p/9077298.html
Copyright © 2011-2022 走看看