Spring executeFind方法:回撥查詢操作

2020-07-16 10:05:01
該方法用於執行 Hibernate 查詢操作,但是它使用 HibernateCallback 介面回撥,操作底層的 Hibernate 功能來實現,其返回值是一個 List 集合。

語法:

executeFind(HibernateCallback action)

引數說明:
  • action:HibernateCallback 介面的實現。

返回值:Hibernate 的查詢結果集,型別為 List 集合。

範例

本範例通過 getSmallUser 方法利用 executeFind 方法獲取年齡不足 18 歲的所有使用者,關鍵程式碼如下:
public List getSmallUser(final Integer ID){
  HibernateTemplate htm = getHibernateTemplate();
  final String sql = "FROM TbUser u where u.age<18";  //生成一條SQL語句
  List list = htm.executeFind(new HibernateCallback(){
    public Object doInHibernate(Session session)throws HibernateException,SQLException{
      Query query = session.createQuery(sql);
      List list = query.list();
      return list;
    }
  });  //建立一個List集合接收查詢結果
  return list;
}