使用spring的HibernateTemplate 過程中發現有很多方法和直接使用hibernate 查詢的方法不同
          1、比如String hql = "select s from ShopInfo s where s.userId=:userid"; 這個hql語句 使用hibernate查詢
          Query query = this.getDaoDelegate().createQuery( hql ).setParameter("userid", userid);  這樣得到一個query了 可以通過setParameter方法寫對參數賦值,可是通過HibernateTemplate  如何進行查詢啊
          2、使用HibernateTemplate 的executeFind 和execute等方法的時候是返回一個HibernateCallback對象 要實現doInHibernate這個方法 這樣查詢的時候就都使用了一個匿名函數
          public List getAll(){
            return getHibernateTemplate().executeFind(new HibernateCallback() {
               public Object doInHibernate(Session s) {
                  return s.createQuery("from Student").list();
                }
              });
           }
          感覺這樣很麻煩 有什么好的方法解決么 還請朋友多多指教 在線等

          posted on 2007-12-10 09:54 LifeNote 閱讀(5390) 評論(3)  編輯  收藏 所屬分類: JavaHibernateSpring
          Comments
          • # re: getHibernateTemplate() 學習的疑問
            ph
            Posted @ 2007-12-10 10:55
            //-------------------------------------------------------------------------
            // Convenience finder methods for HQL strings
            //-------------------------------------------------------------------------

            /**
            * Execute an HQL query.
            * @param queryString a query expressed in Hibernate's query language
            * @return a {@link List} containing the results of the query execution
            * @throws org.springframework.dao.DataAccessException in case of Hibernate errors
            * @see org.hibernate.Session#createQuery
            */
            List find(String queryString) throws DataAccessException;

            /**
            * Execute an HQL query, binding one value to a "?" parameter in the
            * query string.
            * @param queryString a query expressed in Hibernate's query language
            * @param value the value of the parameter
            * @return a {@link List} containing the results of the query execution
            * @throws org.springframework.dao.DataAccessException in case of Hibernate errors
            * @see org.hibernate.Session#createQuery
            */
            List find(String queryString, Object value) throws DataAccessException;

            /**
            * Execute an HQL query, binding a number of values to "?" parameters
            * in the query string.
            * @param queryString a query expressed in Hibernate's query language
            * @param values the values of the parameters
            * @return a {@link List} containing the results of the query execution
            * @throws org.springframework.dao.DataAccessException in case of Hibernate errors
            * @see org.hibernate.Session#createQuery
            */
            List find(String queryString, Object[] values) throws DataAccessException;

            /**
            * Execute an HQL query, binding one value to a ":" named parameter
            * in the query string.
            * @param queryString a query expressed in Hibernate's query language
            * @param paramName the name of the parameter
            * @param value the value of the parameter
            * @return a {@link List} containing the results of the query execution
            * @throws org.springframework.dao.DataAccessException in case of Hibernate errors
            * @see org.hibernate.Session#getNamedQuery(String)
            */
            List findByNamedParam(String queryString, String paramName, Object value)
            throws DataAccessException;

            /**
            * Execute an HQL query, binding a number of values to ":" named
            * parameters in the query string.
            * @param queryString a query expressed in Hibernate's query language
            * @param paramNames the names of the parameters
            * @param values the values of the parameters
            * @return a {@link List} containing the results of the query execution
            * @throws org.springframework.dao.DataAccessException in case of Hibernate errors
            * @see org.hibernate.Session#getNamedQuery(String)
            */
            List findByNamedParam(String queryString, String[] paramNames, Object[] values)
            throws DataAccessException;  回復  更多評論   
          • # re: getHibernateTemplate() 學習的疑問
            ph
            Posted @ 2007-12-10 11:05
            簡言之,用“?”的參數可以用find(hql, values), 用:userid可以使用findByNamedParam(hql, paramNames, values)  回復  更多評論   
          • # re: getHibernateTemplate() 學習的疑問
            LifeNote
            Posted @ 2007-12-10 17:07
            多謝指點 還是多看下api的好啊 呵呵   回復  更多評論   
           
          主站蜘蛛池模板: 永川市| 济源市| 海城市| 全椒县| 长汀县| 安庆市| 比如县| 香格里拉县| 灵台县| 额敏县| 陇川县| 都江堰市| 嘉鱼县| 五常市| 时尚| 南开区| 珠海市| 高淳县| 同心县| 崇信县| 广汉市| 寿光市| 扎赉特旗| 固原市| 宜丰县| 斗六市| 济南市| 乌什县| 宿松县| 梁平县| 旅游| 潜山县| 紫金县| 日土县| 利辛县| 上蔡县| 阿拉尔市| 若羌县| 昌黎县| 呼和浩特市| 鲁山县|