Hibernate通过sql查询返回list或者是map
2018-01-19 12:51
309 查看
hibernate大致分如下集中查询:
1.Criteria查询,简称QBC<Query By Criteria>;
2.HQL查询;
3.SQL查询;
记一下sql查询。
在实际应用中,有时会查询某张表的个别字段,这个时候就需要用原生sql来查询。
但是通过原生sql查询的返回结果会是list形式的数组。
如查询学生表的name,age列,返回的结果就是由多个name、age所在的数组形成的list。
不过,可以通过hibernate特殊的支持方式,将用原生sql查询出来的结果映射成List<List>或者是List<Map>.
1.如何映射成为List<List>
String sql=“select new List(s.name as name) from Student s where s.classNo = 1”;
List ls=session.createQuery(sql).list();
2.如何映射成List<Map>
String sql=“select new map(s.name as name) from Student s”;
List ls=session.createQuery(sql).list();解释:
这种方式其实还是通过hql方式来实现查询的,还是要符合映射关系的:
1.其中Student是实体类名,不是数据库中的表名。
2.name,age等列名对应的是实体类中的属性;
3.其中hql语句中的实体类名和属性名是需要注意大小写的;
4.如果用到DISTINCT来实现查询时去重时:
String sql=“select DISTINCT new List(s.name as name) from Student s where s.classNo = 1”;
1.Criteria查询,简称QBC<Query By Criteria>;
2.HQL查询;
3.SQL查询;
记一下sql查询。
在实际应用中,有时会查询某张表的个别字段,这个时候就需要用原生sql来查询。
但是通过原生sql查询的返回结果会是list形式的数组。
如查询学生表的name,age列,返回的结果就是由多个name、age所在的数组形成的list。
不过,可以通过hibernate特殊的支持方式,将用原生sql查询出来的结果映射成List<List>或者是List<Map>.
1.如何映射成为List<List>
String sql=“select new List(s.name as name) from Student s where s.classNo = 1”;
List ls=session.createQuery(sql).list();
2.如何映射成List<Map>
String sql=“select new map(s.name as name) from Student s”;
List ls=session.createQuery(sql).list();解释:
这种方式其实还是通过hql方式来实现查询的,还是要符合映射关系的:
1.其中Student是实体类名,不是数据库中的表名。
2.name,age等列名对应的是实体类中的属性;
3.其中hql语句中的实体类名和属性名是需要注意大小写的;
4.如果用到DISTINCT来实现查询时去重时:
String sql=“select DISTINCT new List(s.name as name) from Student s where s.classNo = 1”;
相关文章推荐
- Hibernate中用纯SQL查询,并通过hibernate分页返回List<对象>
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- hibernate通过sql查询返回一个key value对应的map对象型集合
- Hibernate createSQLQuery list 返回结果转成Map的方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- 在hibernate中查询使用List,Map和类对象定制返回类型
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法 .
- 在hibernate中查询使用List,Map和类对象定制返回类型
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- hibernate 使用sql查询列表返回map 形式
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- hibernate sql查询转换成VO返回list
- Hibernate通过SQL查询常量时只能返回第一个字符的解决方法
- Hibernate SQLQuery查询返回空List,在mysql命令下直接执行sql语句可以正常得到记录