使用spring的HibernateTemplate 過程中發(fā)現(xiàn)有很多方法和直接使用hibernate 查詢的方法不同
          1、比如String hql = "select s from ShopInfo s where s.userId=:userid"; 這個(gè)hql語句 使用hibernate查詢
          Query query = this.getDaoDelegate().createQuery( hql ).setParameter("userid", userid);  這樣得到一個(gè)query了 可以通過setParameter方法寫對參數(shù)賦值,可是通過HibernateTemplate  如何進(jìn)行查詢啊
          2、使用HibernateTemplate 的executeFind 和execute等方法的時(shí)候是返回一個(gè)HibernateCallback對象 要實(shí)現(xiàn)doInHibernate這個(gè)方法 這樣查詢的時(shí)候就都使用了一個(gè)匿名函數(shù)
          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 閱讀(5387) 評論(3)  編輯  收藏 所屬分類: Java 、Hibernate 、Spring
          Comments
          • # re: getHibernateTemplate() 學(xué)習(xí)的疑問
            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;  回復(fù)  更多評論   
          • # re: getHibernateTemplate() 學(xué)習(xí)的疑問
            ph
            Posted @ 2007-12-10 11:05
            簡言之,用“?”的參數(shù)可以用find(hql, values), 用:userid可以使用findByNamedParam(hql, paramNames, values)  回復(fù)  更多評論   
          • # re: getHibernateTemplate() 學(xué)習(xí)的疑問
            LifeNote
            Posted @ 2007-12-10 17:07
            多謝指點(diǎn) 還是多看下api的好啊 呵呵   回復(fù)  更多評論   
           
          主站蜘蛛池模板: 高安市| 历史| 叶城县| 五莲县| 库伦旗| 舞钢市| 中阳县| 临漳县| 尚义县| 黎城县| 南丰县| 锡林郭勒盟| 哈密市| 宝鸡市| 大石桥市| 丰城市| 南和县| 辰溪县| 宣化县| 荥阳市| 南靖县| 咸阳市| 讷河市| 沙洋县| 将乐县| 凯里市| 绍兴县| 云南省| 隆化县| 无锡市| 曲阜市| 吴忠市| 阿拉善右旗| 淮阳县| 兴文县| 沙洋县| 宣城市| 集安市| 米脂县| 沙湾县| 龙门县|