hibernate--List ,Oblect,Mapd不同的返回属性

来源:互联网 发布:白俄罗斯美女知乎 编辑:程序博客网 时间:2024/06/07 00:55
择-select子句,作用:指定只需要的查询信息,提高程序的运行效率1.以Object[]形式返回选择的属性:注意:hql的select查询语句中,如果指定了多个查询字段,则返回的是一个Object[]数组,然而如果只指定了一个查询字段,则返回的是一个Object对象。String hql = "select s.name,s.tel from Seller s";Query query = session.createQuery(hql);List<Object[]> sellers = query.list();for(Object[] objs:sellers){System.out.println("name:"+objs[0]);System.out.println("tel:"+objs[1]);}(如果是单个查询字段的话就只需要把上面的Object[]中的[]去掉,打印输出时不需要指明下标)2.以List形式返回选择的属性String hql = "select new list(s.name,s.tel,s.address) from Seller s";...List<List>lists=query.getResultList();3.以map形式返回选择的属性注意:key为索引值,是字符串类型(map.get("0")),使用Map集合时考虑使用别名获取属性信息String hql = "select new map(s.name,s.tel,s.address) from Seller s";4.以自定义类型返回选择的属性(1)持久化类中定义对应的构造器(2)select子句中调用定义的构造器注意:默认构造器是需要的,因为,在Hibernate没有指定的查询的放回集合时候,Hibernate会自动去找默认构造器,如果不存在,则会出现异常String hql = "select new Seller(s.name,s.tel,s.address) from Seller s";5.获取独特的结果-distinct关键字distinct关键字 消除查询过程中重复的元素String hql = "select distinct s.sex from Seller s";
以自定义类型返回数据1.先创建自定义构造器例如 public Sellers(String name,String address){  this.name=name;  this.address=address;}2.通过自定义类型返回查询结果String hql="select new Seller(s.name,s.tel,s.address)from Seller s";Query query=session.createQuery(hql);List<Seller> lists=query.list();for (Seller seller : lists) {System.out.println("-----------------------------");System.out.println("name"+seller.getName());System.out.println("tel"+seller.getTel());System.out.println("address"+seller.getAddress());}

原创粉丝点击