<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 262,  comments - 221,  trackbacks - 0

    如題,Oracle數(shù)據(jù)庫里面有一批記錄,現(xiàn)在我想根據(jù)其中一個(gè)叫:txn_date的字段來查詢記錄,在Hbm文件中我配置了該HQL,如下所示:

    <sql-query name="job.getJobByDate">
        select {job.*} from Newsletter_Message job 
         where to_char(:dateType,'yyyy-mm-dd hh24:mi') = 
               to_char(:jobDate, 'yyyy-mm-dd hh24:mi')
    <return alias="job"
            class
    ="com.newsletter.domain.job.Job" />
    </sql-query>


    在DAO方法中我使用了Spring的HibernateTemplate,方法如下:

    public List<Job> getJobByDate(final Date jobDate, final String dateType) {
     
    return (List<Job>
      getHibernateTemplate().executeFind(
        
    new HibernateCallback() 

          
    public
     Object doInHibernate(Session session)
              
    throws HibernateException 
    {
            Query query 
    = session.getNamedQuery("job.getJobByDate"
    );
            query.setString(
    "dateType"
    , dateType);
            query.setDate(
    "jobDate"
    ,jobDate);
            
    return
     query.list();
          }

     }
    );
    }


    Hibernate生成的SQL語句如下

    select job.TXN_NO as TXN1_5_0_,
           job.TXN_TYPE 
    as
     TXN2_5_0_,
           job.TXN_DATE 
    as
     TXN3_5_0_, 
      
    from
     Newsletter_Message job
     
    where to_char(?, 'yyyy-mm-dd hh24:mi'= to_char(?, 'yyyy-mm-dd hh24:mi')


    每次執(zhí)行時(shí),總是拋異常,說:
    org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not execute query;
    .....
    Caused by: java.sql.SQLException: ORA-01722: invalid number

    我實(shí)在不明白為什么會(huì)報(bào)這個(gè)錯(cuò)誤,難道Hibernate在set date或者set string之前不會(huì)對(duì)其進(jìn)行格式的轉(zhuǎn)換嗎?于是我又換了另外一個(gè)HQL語句,在代碼里面提前將Date格式成String,但還是報(bào)錯(cuò):

    where to_char(dateType,'yyyy-mm-dd hh24:mi') = :strDate

    后來實(shí)在沒辦法了,用了一陰招,代碼如下,測(cè)試通過,但是覺得這種代碼太丑陋了。

    public List<Job> getJobByDate(final Date jobDate, final String dateType) {
      
    return getHibernateTemplate().executeFind(new HibernateCallback() 
    {
        
    public
     Object doInHibernate(Session session)
            
    throws HibernateException 
    {

         String strDate 
    =
     DateUtil.convertDateToString(jobDate,
                                
    "yyyy-MM-dd HH:mm"
    );
        Query query 
    = session.createQuery("from Job job where "

                            
    + "to_char(" + dateType + ",'yyyy-mm-dd hh24:mi') = '"
                             
    + strDate + "'");
        
    return (List<Job>
    ) query.list();
        }

      }
    );
    }


    不知道各位能否解析一下上面那個(gè)報(bào)錯(cuò)的原因,謝謝先了!



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2008-05-22 16:40 Paul Lin 閱讀(2261) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE 框架
    <2008年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點(diǎn)博客

    好友博客

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: mm1313亚洲国产精品无码试看| 色噜噜综合亚洲av中文无码| 又大又粗又爽a级毛片免费看| 女人18毛片a级毛片免费| 最近的中文字幕大全免费版| 最近免费中文字幕大全| 最近免费中文字幕视频高清在线看| AV免费网址在线观看| 精品免费国产一区二区三区| 免费无码又爽又刺激高潮的视频| 免费观看a级毛片| www亚洲精品少妇裸乳一区二区| 亚洲人成色7777在线观看不卡| 中文字幕亚洲专区| 久久久久亚洲av无码专区蜜芽| 亚洲无删减国产精品一区| 亚洲欧洲日产韩国在线| 99亚偷拍自图区亚洲| 精品国产日韩亚洲一区91| 九九九国产精品成人免费视频| 四虎影视无码永久免费| 99爱在线精品视频免费观看9| 日韩免费一区二区三区在线播放| 日韩精品免费一区二区三区| 亚洲AV无码乱码在线观看牲色| 相泽亚洲一区中文字幕| 亚洲午夜精品一区二区| 亚洲乱码一区二区三区国产精品| 在线观看国产一区亚洲bd| 久久成人永久免费播放| 日韩免费高清大片在线| 成人免费毛片内射美女APP | 久久久久亚洲精品无码网址色欲| 美女裸体无遮挡免费视频网站| 国产一级一毛免费黄片| 91精品免费久久久久久久久| 国产成人高清精品免费鸭子| 国产av无码专区亚洲国产精品| 亚洲视频在线播放| 日韩亚洲人成在线综合| 久久精品国产免费|