Hibernate addEntity方法:將別名和實體類聯絡

2020-07-16 10:04:57
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();