使用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的好啊 呵呵   回復  更多評論   
           
          主站蜘蛛池模板: 邓州市| 昌邑市| 翼城县| 隆德县| 唐山市| 禹城市| 迭部县| 南郑县| 濮阳市| 格尔木市| 青岛市| 焦作市| 宜都市| 红河县| 福贡县| 萝北县| 湘潭县| 丁青县| 金秀| 兰州市| 子长县| 板桥市| 英超| 若羌县| 宾川县| 贵阳市| 乌兰浩特市| 大英县| 丹东市| 阳朔县| 晋中市| 青川县| 夏邑县| 高碑店市| 琼结县| 青龙| 多伦县| 兰西县| 丰都县| 镇巴县| 望谟县|