hql查询语句

来源:互联网 发布:nginx 子域名映射端口 编辑:程序博客网 时间:2024/06/08 12:23

1.hql使用对象的方式封装结果数据

@Testpublic void getOrdersList(){    String hql = "select new com.demo.hibernate.one2many.Order(o.id, o.orderId, o.createTime) from Order as o";    Query<Order> query = session.createQuery(hql, Order.class);    List<Order> list = query.getResultList();    for(Order o : list){        System.out.println(o.getId() + ";;" + o.getOrderId() + ";;");     }}

2.多列数据的查询

@Testpublic void getObjectArray(){    String hql = "select c.name, c.phoneNum, o.orderId, o.createTime from Order o join o.customer c";    Query<Object[]> query = session.createQuery(hql, Object[].class);    List<Object[]> list = query.getResultList();    for(Object[] o : list){        System.out.println(o[0] + ";;" + o[1] + ";;");    }}

3.函数查询

@Testpublic void functionQuery(){    String hql = "select max(id), count(*) from Order";    Query<Object[]> query = session.createQuery(hql, Object[].class);    Object[] obj = query.getSingleResult();    System.out.println(obj[0] + "::" + obj[1] + "::");}