// 单个字段查询
Query query1 = currentSession().createQuery("select c.airline from NldpFlightList c");
List<Object> list = query1.list();
for (Object airline : list) {
System.out.println(airline);
}
// 要有对应的构造方法
Query query2 = currentSession().createQuery("select new NldpFlightList(c.airline,c.airlineFltNumber) from NldpFlightList c");
List<Object> list2 = query2.list();
for (Object airline : list2) {
System.out.println(airline);
}
// 多表查询
List<Object[]> list1 = currentSession().createQuery("from NldpFlightList c inner join c.nldpFlightListAddVo").list();
for (Object[] objects : list1) {
System.out.println(Arrays.toString(objects));
}
// sql查询
List<NldpFlightList> list1 = currentSession().createSQLQuery("select c.* from Nldp_Flight_List c left join " +
"Nldp_Flight_Message_Send m on c.iata_c = m.iata_c where c.fid = 400084949").addEntity(NldpFlightList.class).list();
// sql查询返回vo vo内的属性要全部大写/别名需要加双引号
String sql = "select c.iata_c as \"airline\",m.flight as \"flight\" from Nldp_Flight_List c join " +
"Nldp_Flight_Message_Send m" +
" on c.iata_c = m.iata_c where c.fid = 400084949 and rownum = 1";
Query query = currentSession().createSQLQuery(sql);
query.setResultTransformer(Transformers.aliasToBean(TestVo.class));
TestVo testVo = (TestVo)query.uniqueResult();
// criteria查询
Criteria criteria = currentSession().createCriteria(NldpFlightList.class);
criteria.add(Restrictions.eq("fid",400084949l));
List<NldpSchedule> nldpSchedules = (List<NldpSchedule>) criteria.list();
Iterator iterate =
currentSession().createQuery("from NldpFlightList c inner join c.nldpFlightListAddVo").iterate();
while (iterate.hasNext()){
Object[] result = (Object[])iterate.next();
NldpFlightList nldpFlightList = (NldpFlightList)result[0];
NldpFlightListAdd nldpFlightListAddVo = (NldpFlightListAdd)result[1];
}
Iterator iterate =
currentSession().createQuery("from NldpFlightList").iterate();
while (iterate.hasNext()){
NldpFlightList nldpFlightList = (NldpFlightList)iterate.next();
System.out.println("");
}