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

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

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

    wangflood

    精心維護一個技術blog,為了工作,也是愛好。

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      14 Posts :: 19 Stories :: 8 Comments :: 0 Trackbacks

     

     

     

            最近在做江蘇一家公司的面試題,本來只是一個簡單的權限控制方面的題型。但我是一個完美主義者,硬是征求同意更改了需求,用ssh架構。做的整個過程中,遇了不少問題,雖然只是簡單的增刪改查。
            
    user表如下:

    create table user(
    number int(11NOT NULL auto_increment COMMENT '編號',
    username 
    varchar(20not null,
    password 
    varchar(50not null,
    privilege 
    varchar(10not null COMMENT '員工,管理員,部門主任',
    regtime date 
    NOT NULL COMMENT '入職時間',
    location 
    varchar(20NOT NULL COMMENT '位置',
    contactman 
    varchar(20NOT NULL,
    primary key (number),
    UNIQUE KEY (username)
    );

        
    spring getHibernateTemplate().saveOrUpdate(obj)方法調用 hibernate session.saveOrUpdate(entity);

    我只想更新除password之外的字段,但看打印的sql,saveOrUpdate(entity)聰明地把password=null。我很無語,為什么不能先判斷一下,如果有為null的話,就不更新了。
    本來我想按自己的思想,重新封裝一下此方法的,但礙于項目進度,就先拼拼湊湊sql吧。
        String hql = "update User set username = '" + tempUser.getUsername()
                    
    + "' , privilege = '" + tempUser.getPrivilege()
                    
    + "' , regtime = '" + tempUser.getRegtime()
                    
    + "' , contactman = '" + tempUser.getContactman()
                    
    + "' , location = '" + tempUser.getLocation()
                    
    + "' where number =" + tempUser.getNumber();
            
    int count = dao.update(hql);

    也就是不更新password,但出現error
    Hibernate: update User set username='f', privilege='管理員', regtime='Sat Dec 25 00:00:00 CST 2010', contactman='ff', location='fff' where number=27
    2010-12-25 09:37:01 SQL Error: 0, SQLState: 22001

    String2Date:------------2010-12-25----------------
    String2Date:
    ------------2000-01-01----------------
    String2Date:
    ------------2050-12-31----------------

    java.util.Date=com.emp.util.DateConverter
    DateConverter只是執(zhí)行一次,也就是在validattion.xml 和set方法之前,那么Date2String,什么時候執(zhí)行呢。會在調用get方法的時候嗎?
    this.contactman = user.getContactman();
            
    // this.regtime = user.getRegtime();

    換了一下,依然報錯。我的設想很垃圾。呵呵。所以設想Date2String在get方法后執(zhí)行,不然頁面怎么會正常。
    getHibernateTemplate().saveOrUpdate(obj),雖然把password=null了,但它的類型是正常的,我設想調用了Converter.怎么做到的呢。
    我繼續(xù)發(fā)現.........

    補充:
    我自己想錯了。
    hibernate本身有轉換器,何必調用sturts2轉換器。
    不過,我還真遇到問題。
    hql:里update 時,hibernate能把類型轉換過來嗎?似乎不能。這個時候,怎么辦。我自己寫轉換方法的。這個實現太垃圾了。
    還有saveOrupdate不好使時,我先load一下,然后set ,最后saveOrUpdate。成功了。
    load()后應該是hibernate的xx態(tài),既然講得這么多的概念之一,相信肯定是hibernate做得成功的地方,先查找再插入效率上肯定也高。
    這方面還得深入學習啊。。
    posted on 2010-12-25 10:11 wangflood 閱讀(2849) 評論(1)  編輯  收藏 所屬分類: J2EE/SSH

    Feedback

    # re: 關于saveOrUpdate(Object obj)方法 2013-12-20 11:20 竹木一
    同求!!
    我也是一直就先取出來,然后set回去的,有好方法記得分享哈~~  回復  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线aⅴ亚洲中文字幕| 亚洲国产另类久久久精品小说| 亚洲精品高清国产麻豆专区| 男女一进一出抽搐免费视频 | 三年片在线观看免费观看大全一 | a毛片免费观看完整| 国产精品久久亚洲一区二区| 四虎成人精品一区二区免费网站| 亚洲中文字幕一区精品自拍| 成人av免费电影| 亚洲av无码一区二区三区在线播放 | 色网站在线免费观看| 亚洲国产黄在线观看| 中文精品人人永久免费| 久久夜色精品国产嚕嚕亚洲av| 亚洲国产成人片在线观看无码| 日韩电影免费观看| 亚洲人成电影在线观看网| 在线观看免费为成年视频| 麻豆69堂免费视频| 亚洲无码在线播放| 最新亚洲人成无码网www电影| 又粗又硬免费毛片| 少妇性饥渴无码A区免费| 亚洲综合综合在线| 日本v片免费一区二区三区| 特级做a爰片毛片免费看| 久久亚洲国产精品| 亚洲成在人线aⅴ免费毛片| 色欲aⅴ亚洲情无码AV蜜桃| 国产av无码专区亚洲av果冻传媒| 黄网站色视频免费在线观看的a站最新 | 国产a视频精品免费观看| 亚洲中文字幕久久精品蜜桃| www国产亚洲精品久久久日本| 9久热精品免费观看视频| 亚洲国产成人91精品| 亚洲成a人片在线观看老师| 免费女人高潮流视频在线观看 | jlzzjlzz亚洲jzjzjz| 欧洲人成在线免费|