關於hibernate佔位符中使用like及相關注意事項

 

關於 hibernate 佔位符中使用 like 及相關注意事項

 

1 注意 Object 數組裏面要對應上映射類的類型,該是 Stirng 的就 String ,該是 Integer 的就是 Integer

2 注意不要將本身的 sql 語句作爲佔位符,比如 "order by hostName" ,而只需要   order by :hostName 然後在佔位符裏面設置這個 hostName ,不然會報錯。

 

StringBuilder hql = new StringBuilder(0);

        hql.append( "from TblHost h where h.vmHost.hostID in (select t.hostID from TblHost t" );

        hql.append( " where t.ishpvhost=1 and  t.ccmData.id in (select c.id from CcmData c " );

        hql.append( " where c.pathid like " );

        hql.append( ":id" );

         hql.append( " or c.id= " );

        hql.append( ":id2" );

        hql.append( ")) " );

        hql.append(strHql);

       

        List<TblHost> tempList = null ;

        try

        {

            tempList = this .getHibernateTemplate().findByNamedParam(hql.toString(),

                    new String[] { "id" , "id2" },

                    new Object[] { "%" + id + "%" , new Integer(id)});

        }

        catch (DataAccessException e)

        {

            // 這裏進行 usm 的日誌記錄及相關處理

        } 
 

 

 

                                                 田軍 sdy645 tKF25401

                                                 2010-04-21

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章