<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

    Making objects persistent

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

    Newly instantiated instances of a a persistent class are considered transient by Hibernate. We can make a transient instance persistent by associating it with a session:

    DomesticCat fritz = new DomesticCat();
    fritz.setColor(Color.GINGER);
    fritz.setSex('M');
    fritz.setName("Fritz");
    Long generatedId = (Long) sess.save(fritz);

    If Cat has a generated identifier, the identifier is generated and assigned to the cat when save() is called. If Cat has an assigned identifier, or a composite key, the identifier should be assigned to the cat instance before calling save(). You may also use persist() instead of save(), with the semantics defined in the EJB3 early draft.

    • persist() makes a transient instance persistent. However, it doesn't guarantee that the identifier value will be assigned to the persistent instance immediately, the assignment might happen at flush time. persist() also guarantees that it will not execute an INSERT statement if it is called outside of transaction boundaries. This is useful in long-running conversations with an extended Session/persistence context.

    • save() does guarantee to return an identifier. If an INSERT has to be executed to get the identifier ( e.g. "identity" generator, not "sequence"), this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is problematic in a long-running conversation with an extended Session/persistence context.

    Alternatively, you may assign the identifier using an overloaded version of save().

    DomesticCat pk = new DomesticCat();
    pk.setColor(Color.TABBY);
    pk.setSex('F');
    pk.setName("PK");
    pk.setKittens( new HashSet() );
    pk.addKitten(fritz);
    sess.save( pk, new Long(1234) );

    If the object you make persistent has associated objects (e.g. the kittens collection in the previous example), these objects may be made persistent in any order you like unless you have a NOT NULL constraint upon a foreign key column. There is never a risk of violating foreign key constraints. However, you might violate a NOT NULL constraint if you save() the objects in the wrong order.

    Usually you don't bother with this detail, as you'll very likely use Hibernate's transitive persistence feature to save the associated objects automatically. Then, even NOT NULL constraint violations don't occur - Hibernate will take care of everything. Transitive persistence is discussed later in this chapter. 


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品视频在线免费| CAOPORN国产精品免费视频| 曰批全过程免费视频播放网站 | 亚洲AV无码国产一区二区三区 | 99久久久国产精品免费蜜臀| 亚洲精品狼友在线播放| 东方aⅴ免费观看久久av| 亚洲av无码不卡一区二区三区| 中文字幕日本人妻久久久免费| 亚洲精品无码av人在线观看 | 今天免费中文字幕视频| 亚洲成人免费在线| 国产h视频在线观看网站免费| 亚洲短视频在线观看| 免费中文熟妇在线影片| 亚洲AV无码一区二区三区性色| 四只虎免费永久观看| 91国内免费在线视频| 亚洲综合成人网在线观看| 可以免费看黄的网站| 亚洲av永久中文无码精品综合| 国产一级理论免费版| 久久九九久精品国产免费直播| 色播亚洲视频在线观看| 成人毛片18女人毛片免费96| 成a人片亚洲日本久久| 亚洲色精品88色婷婷七月丁香| 91精品免费观看| 亚洲国产精品ⅴa在线观看| 亚洲精品和日本精品| 欧洲精品99毛片免费高清观看 | 一区二区三区免费电影| 久久精品国产亚洲av四虎| 一二三四在线观看免费高清中文在线观看 | 曰皮全部过程视频免费国产30分钟| 人妻无码中文字幕免费视频蜜桃| 久久91亚洲人成电影网站| 动漫黄网站免费永久在线观看| 七次郎成人免费线路视频| 久久精品国产亚洲AV无码娇色| 在线观看亚洲免费视频|