<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

    Loading an object

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

    The load() methods of Session gives you a way to retrieve a persistent instance if you already know its identifier. load() takes a class object and will load the state into a newly instantiated instance of that class, in persistent state.

    Cat fritz = (Cat) sess.load(Cat.class, generatedId);
    // you need to wrap primitive identifiers
    long id = 1234;
    DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long(id) );

    Alternatively, you can load state into a given instance:

    Cat cat = new DomesticCat();
    // load pk's state into cat
    sess.load( cat, new Long(pkId) );
    Set kittens = cat.getKittens();

    Note that load() will throw an unrecoverable exception if there is no matching database row. If the class is mapped with a proxy, load() just returns an uninitialized proxy and does not actually hit the database until you invoke a method of the proxy. This behaviour is very useful if you wish to create an association to an object without actually loading it from the database. It also allows multiple instances to be loaded as a batch if batch-size is defined for the class mapping.

    If you are not certain that a matching row exists, you should use the get() method, which hits the database immediately and returns null if there is no matching row.

    Cat cat = (Cat) sess.get(Cat.class, id);
    if (cat==null) {
    cat = new Cat();
    sess.save(cat, id);
    }
    return cat;

    You may even load an object using an SQL SELECT ... FOR UPDATE, using a LockMode. See the API documentation for more information.

    Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);

    Note that any associated instances or contained collections are not selected FOR UPDATE, unless you decide to specify lock or all as a cascade style for the association.

    It is possible to re-load an object and all its collections at any time, using the refresh() method. This is useful when database triggers are used to initialize some of the properties of the object.

    sess.save(cat);
    sess.flush(); //force the SQL INSERT
    sess.refresh(cat); //re-read the state (after the trigger executes)

    An important question usually appears at this point: How much does Hibernate load from the database and how many SQL SELECTs will it use? This depends on the fetching strategy and is explained in Section 19.1, “Fetching strategies”


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲乱码中文字幕小综合| 国产精品亚洲A∨天堂不卡| 亚洲中文无码av永久| 亚洲视频在线观看免费视频| 亚洲成AV人片在线观看WWW| 中文字幕在线成人免费看| 久久精品国产亚洲精品| 99热在线日韩精品免费| 日韩精品亚洲人成在线观看| 免费无码毛片一区二区APP| 亚洲激情黄色小说| 成年人视频在线观看免费| 亚洲GV天堂GV无码男同| 亚洲?v无码国产在丝袜线观看| 四虎一区二区成人免费影院网址| 亚洲色欲久久久久综合网| 日韩电影免费在线观看网站 | 国产jizzjizz免费看jizz| 美女视频黄频a免费| 亚洲中文字幕在线第六区| 一级毛片**不卡免费播| 亚洲一级免费视频| 免费人成视频在线观看视频| 两个人日本WWW免费版| 亚洲精品福利网站| 国产人妖ts在线观看免费视频| 国产日韩AV免费无码一区二区三区 | 野花视频在线官网免费1| 亚洲美女又黄又爽在线观看| 2021在线永久免费视频| 亚洲成AV人影片在线观看| 久久久久噜噜噜亚洲熟女综合| 一级毛片在线观看免费| 亚洲精品日韩一区二区小说| 亚洲午夜久久久久妓女影院| 91精品免费久久久久久久久| 农村寡妇一级毛片免费看视频| 久久亚洲中文字幕精品有坂深雪| 成人黄动漫画免费网站视频| fc2成年免费共享视频18| 亚洲精品第一国产综合精品|