Hibernate通过sql查询返回list或者是map 谁借莪1个温暖的怀抱¢ 2021-06-24 15:58 638阅读 0赞 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”; > > > > > > > > > > > >
还没有评论,来说两句吧...