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

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

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

    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) 評論(0)  編輯  收藏 所屬分類: J2EE 框架
    <2008年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點(diǎn)博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 五月亭亭免费高清在线| 国产男女猛烈无遮挡免费视频网站| 99久久亚洲精品无码毛片| 久久国内免费视频| 性生大片视频免费观看一级| 亚洲国产精品成人精品无码区| 日本精品人妻无码免费大全| 久久免费香蕉视频| 亚洲人成人伊人成综合网无码| 亚洲AV综合色区无码一区爱AV| 国产精品免费电影| 四只虎免费永久观看| 美女视频黄a视频全免费| 久久不见久久见免费影院| 成人毛片免费观看视频大全| 野花香在线视频免费观看大全 | 日本久久久免费高清| 97久久免费视频| 亚洲一级片免费看| 国产精品亚洲一区二区无码| 亚洲理论精品午夜电影| 亚洲综合亚洲综合网成人| 岛国片在线免费观看| 精品免费人成视频app| 成年人视频在线观看免费| 国产精品免费_区二区三区观看| 亚洲第一区在线观看| 一本岛高清v不卡免费一三区| 最近免费中文字幕大全| 国产性生交xxxxx免费| 77777亚洲午夜久久多人| 国产yw855.c免费视频| 中文字幕精品亚洲无线码一区 | 国产又大又粗又硬又长免费| 亚洲情侣偷拍精品| 免费一级毛片清高播放| 国产高清免费在线| 亚洲精品成人片在线播放| 久久久久亚洲AV无码专区网站| 无码欧精品亚洲日韩一区夜夜嗨 | 国产又大又黑又粗免费视频 |