<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數據庫里面有一批記錄,現在我想根據其中一個叫: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')


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

    我實在不明白為什么會報這個錯誤,難道Hibernate在set date或者set string之前不會對其進行格式的轉換嗎?于是我又換了另外一個HQL語句,在代碼里面提前將Date格式成String,但還是報錯:

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

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

    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();
        }

      }
    );
    }


    不知道各位能否解析一下上面那個報錯的原因,謝謝先了!



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

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品久免费的黄网站| 久久久久久久岛国免费播放| 一区二区三区四区免费视频 | 成年女人午夜毛片免费视频| 亚洲网址在线观看你懂的| 91视频免费观看| 久久精品国产亚洲一区二区| 国产一级婬片A视频免费观看| 亚洲爆乳AAA无码专区| 好吊色永久免费视频大全 | 亚洲国产精品自在拍在线播放| 一本色道久久综合亚洲精品高清| 免费看一级一级人妻片| 在线观看的免费网站无遮挡| 日韩一级在线播放免费观看| 亚洲高清一区二区三区电影| 日韩在线免费播放| 又大又硬又粗又黄的视频免费看 | 一本天堂ⅴ无码亚洲道久久| 免费爱爱的视频太爽了| 亚洲动漫精品无码av天堂| 精品亚洲永久免费精品| 免费在线看片网站| 特级做a爰片毛片免费看| 国产亚洲一区二区三区在线不卡| 黄桃AV无码免费一区二区三区| 亚洲Av熟妇高潮30p| 国内精自视频品线六区免费| 亚洲午夜无码毛片av久久京东热| 四虎免费影院4hu永久免费| 精品免费久久久久国产一区| 亚洲综合精品香蕉久久网97| 毛片在线免费视频| 亚洲国产夜色在线观看| 久久免费国产精品一区二区| 亚洲婷婷天堂在线综合| 国内大片在线免费看| 在线涩涩免费观看国产精品 | 亚洲色偷偷色噜噜狠狠99| 亚洲乱码国产一区网址| 99久久久国产精品免费牛牛|