Hibernate的查询 HQL查询 查询某几列

HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询 方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
 
在HQL中,你可以直接From你的实体对象来进行查询:
Java代码 
/**
 * 简单使用
 */ 
@SuppressWarnings("unchecked") 
public static void test1(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = "from User u"; 
    Query query = session.createQuery(hql); 
    List<User> user = query.list(); 
    System.out.println("------------SQL执行完毕---------------"); 
    for (User us : user) { 
        System.out.println(us.getName()); 
    } 

 
类的后面可以接别名
 
如果想单独查询某一列,可以这样使用:
Java代码 
/**
 * 查询某列
 */ 
@SuppressWarnings("unchecked") 
public static void test2(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = "select name from User u"; 
    Query query = session.createQuery(hql); 
    List<String> user = query.list(); 
    System.out.println("------------SQL执行完毕---------------"); 
    for (String us : user) { 
        System.out.println(us); 
    } 

 
如果想查询某几列的话,只是返回的内容不同了而已:
Java代码 
/**
 * 查询某几列
 */ 
@SuppressWarnings("unchecked") 
public static void test3(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = "select id,name from User u"; 
    Query query = session.createQuery(hql); 
    List user = query.list(); 
    System.out.println("------------SQL执行完毕---------------"); 
    for(Object obj : user){ 
        Object[] arrObj = (Object[])obj; 
        System.out.println(arrObj[0] + "/t-->/t" + arrObj[1]); 
    } 
}

posted @   郑文亮  阅读(6997)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2011-07-23 Android使用ksoap2调用C#webservice体会(转)
点击右上角即可分享
微信分享提示