• Hibernate addEntity方法:将别名和实体类联系

    addEntity 方法用于将 SQL 表的别名和实体类联系起来,并确定查询结果集的形态。

    语法1

    addEntity(Class entityClass)

    参数说明:

    • entityClass:用于指定实体类。

    返回值:SQLQuery 对象的示例。

    示例

    通过本地 SQL 查询,查询全部的用户信息,关键代码如下:

    Session session = sessionFactory.openSession();  //定义Sesssion对象
    String sql = "select*from tb_user";  //定义查询tb_user表对象
    List list = null;
    List rtnList = new ArrayList();  //定义保存查询结果的List对象
    try{
      SQLQuery query = session.createSQLQuery(sql);
      query.addEntity(UserForm.class);  //绑定实体类
      list = query.list();  //执行查询语句获取查询结果集
    }catch(Exception e){
      System.out.println("查询用户信息时的错误信息:"+e.getMessage());
    }

    在上面的代码中,如果不应用 addEntity 方法也可实现 SQL 查询,但返回的结果集对象为 Object 数组。

    语法2

    addEntity(String alias,Class entityClass)

    参数说明:

    • alias:用于为实体类指定别名。
    • entityClass:用于指定实体类。

    返回值:SQLQuery 对象的示例。

    示例

    通过本地 SQL 查询,查询用户名为 wgh 的用户信息,此时指定实体类的别名为 u,关键代码如下:

    Session session=sessionFactory.openSession();  //定义Session对象
    String sql = "select{u.*}from tb_user u where u.username='wgh'";  //定义查询语句
    List list = null;
    List rtnList = new ArrayList();  //定义保存查询结果的集合对象
    try{
      SQLQuery query = session.createSQLQuery(sql);  //执行查询语句
      query.addEntity("u",UserForm.class);  //绑定数据表与实体类
      list = query.list();//执行查询语句
    }catch(Exception e){
      System.out.println("查询用户信息时的错误信息:"+e.getMessage());
    }

    语法3

    addEntity(String entityName)

    参数说明:

    • entityName:为表示实体类的字符串(这里需要指定对应的包)。

    返回值:SQLQuery 对象的示例。

    示例

    通过本地 SQL 查询,查询用户名为 sk 的用户信息,关键代码如下:

    Session session = sessionFactory.openSession();  //创建Session对象
    String sql = "select*from tb_user where username='sk'";  //定义查询语句
    List list = null;
    List rtnList = new ArrayList();  //定义保存查询结果的集合对象
    try{
      SQLQuery query = session.createSQLQuery(sql);
      query.addEntity("com.model.UserForm");  //绑定实体类
      list = query.list();
    }catch(Exception e){
      System.out.println("查询用户信息时的错误信息:"+e.getMessage());
    }

    参数说明:

    • alias:用于为实体类指定别名。
    • entityName:表示实体类的字符串(这里需要指定对应的包)。

    返回值:SQLQuery 对象的示例。

    示例

    通过本地 SQL 查询,查询用户名为 wgh 的用户信息,关键代码如下:

    Session session = sessionFactory.openSession();  //定义Session对象
    String sql = "select{u.*}from tb_user u where u.username='wgh'";  //定义查询语句
    SQLQuery query = session.createSQLQuery(sql);  //执行查询
    query.addEntity("u","com.model.UserForm");  //绑定参数
    List list = query.list();

更多...

加载中...