使用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 閱讀(5392) 評論(3)  編輯  收藏 所屬分類: Java 、Hibernate 、Spring
          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的好啊 呵呵   回復  更多評論   
           
          主站蜘蛛池模板: 织金县| 泌阳县| 六盘水市| 东山县| 福鼎市| 浑源县| 财经| 博白县| 万载县| 枝江市| 城市| 翁牛特旗| 邵武市| 东海县| 潮安县| 富宁县| 荔波县| 蕉岭县| 天台县| 楚雄市| 新邵县| 克东县| 富民县| 大竹县| 河源市| 丹阳市| 渭源县| 榆林市| 顺昌县| 罗平县| 巴林左旗| 株洲市| 景泰县| 姚安县| 密山市| 临清市| 新田县| 武汉市| 防城港市| 定西市| 涞水县|