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

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

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

    Neil的備忘錄

    just do it
    posts - 66, comments - 8, trackbacks - 0, articles - 0

    Automatic state detection

    Posted on 2008-11-01 10:10 Neil's NoteBook 閱讀(105) 評論(0)  編輯  收藏

    Hibernate users have requested a general purpose method that either saves a transient instance by generating a new identifier or updates/reattaches the detached instances associated with its current identifier. The saveOrUpdate() method implements this functionality.

    // in the first session
    Cat cat = (Cat) firstSession.load(Cat.class, catID);
    // in a higher tier of the application
    Cat mate = new Cat();
    cat.setMate(mate);
    // later, in a new session
    secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)
    secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id)

    The usage and semantics of saveOrUpdate() seems to be confusing for new users. Firstly, so long as you are not trying to use instances from one session in another new session, you should not need to use update(), saveOrUpdate(), or merge(). Some whole applications will never use either of these methods.

    Usually update() or saveOrUpdate() are used in the following scenario:

    • the application loads an object in the first session

    • the object is passed up to the UI tier

    • some modifications are made to the object

    • the object is passed back down to the business logic tier

    • the application persists these modifications by calling update() in a second session

    saveOrUpdate() does the following:

    • if the object is already persistent in this session, do nothing

    • if another object associated with the session has the same identifier, throw an exception

    • if the object has no identifier property, save() it

    • if the object's identifier has the value assigned to a newly instantiated object, save() it

    • if the object is versioned (by a <version> or <timestamp>), and the version property value is the same value assigned to a newly instantiated object, save() it

    • otherwise update() the object

    and merge() is very different:

    • if there is a persistent instance with the same identifier currently associated with the session, copy the state of the given object onto the persistent instance

    • if there is no persistent instance currently associated with the session, try to load it from the database, or create a new persistent instance

    • the persistent instance is returned

    • the given instance does not become associated with the session, it remains detached 


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


    網站導航:
     
    主站蜘蛛池模板: 91亚洲va在线天线va天堂va国产 | 亚洲综合激情五月丁香六月| 日韩电影免费在线观看| 国产亚洲成人久久| 青青操视频在线免费观看| 亚洲日韩精品射精日| 男人进去女人爽免费视频国产| 久久精品7亚洲午夜a| 日韩免费无码一区二区三区| 亚洲丁香色婷婷综合欲色啪| 91大神免费观看| 亚洲一区电影在线观看| 在线视频免费观看www动漫| 麻豆亚洲AV成人无码久久精品| 国产青草视频在线观看免费影院| 美女被羞羞网站免费下载| 国产偷国产偷亚洲高清日韩| a级毛片免费全部播放| 亚洲黄色在线电影| 最近中文字幕无免费视频| 亚洲AV无码一区二区三区牲色| 免费在线观看理论片| 中文字幕高清免费不卡视频| 亚洲激情中文字幕| 成人免费一区二区无码视频| 男性gay黄免费网站| 亚洲国产精品无码专区影院| www视频在线观看免费| 亚洲AV综合色区无码一二三区 | 亚洲国产另类久久久精品黑人| 日本xxxx色视频在线观看免费| 亚洲视频无码高清在线| 免费一级毛片女人图片| 免费无码VA一区二区三区| 日韩亚洲人成在线| 国产亚洲精品线观看动态图| 可以免费看黄的网站| 免费人成大片在线观看播放电影 | 2020国产精品亚洲综合网| 亚洲免费日韩无码系列| 最近中文字幕mv免费高清视频8|