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

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

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

    天生我才

    常用鏈接

    統計

    最新評論

    Hibernate中的主鍵釋疑

    hibernate的配置文件字段是必備的,剛剛看的時候一直疑惑,id字段是怎么和數據庫表關聯的,為什么一定得給表一個額外的字段?

    其實,java語言按內存地址來識別或區分一個類的不同對象,而關系數據庫按主鍵值來區分同一個表的不同記錄,hibernate使用對象標識符(OID)來建立內存中的對象和數據庫表中記錄的對應關系,為保證OID的唯一性,應讓hibernate而不是應用程序為其賦值。

    作為主鍵的字段必須不為空,不允許重復,主鍵值永不改變。可以使用具有業務含義的字段作為主鍵,如COSTOMERS表中的name,但需要滿足上述條件,稱為自然主鍵;也有一種代理主鍵,不具備業務含義,一般取名為ID。ID通常為整數類型,可以定義成自動增長的標識符類型(increment,sequence)。

    講到這里,還得提一下java語言按內存地址區分不同對象,也就是==和equals( ),

    ??? Customer c1=new Customer("oscar");
    ??? Customer c2=new Customer("oscar");
    ??
    ?? c1= =c2?????????? 返回false
    ?? c1.equals(c2)?? 返回true

    現在我們回過頭來再看下Hibernate的OID

    ??????? Transaction tx=session.beginTranscation();
    ??????? Customer c1=(Customer) session.load(Customer.class, new long(1));
    ??????? Customer c2=(Customer) session.load(Customer.class, new long(1));
    ??????? Customer c3=(Customer) session.load(Customer.class, new long(3));
    ??????? System.out.println(c1= =c2);
    ??????? System.out.println(c1= =c3);

    (1)第一次加載OID為1的對象時,是先從數據庫中查詢ID為1的記錄,再創建相應的Customer實例,保存在Session緩存中,最后把這個對象的引用賦值給變量c1。
    (2)第二次加載OID為1時,直接把緩存中的Customer對象賦值給c2。
    (3)第三持加載OID為3的對象,由于緩存中不存在,必須再次從數據庫讀取,然后將Customer實例賦值給c3。

    因而輸出,true?????????
    ??????????????????? false

    最后提一下Hibernate的內置標識符生成器,increment遞增,identity,由底層數據庫負責ID,sequence,也是由底層數據庫負責,hilo, 按high/low的算法來生成,native,能自動判斷底層數據庫提供的生成標識符的機制。

    posted on 2005-09-20 20:15 天生我才 閱讀(258) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 亚洲AV无码乱码麻豆精品国产| 中文字幕久久亚洲一区| 亚洲六月丁香六月婷婷蜜芽| 久久大香伊焦在人线免费| 亚洲国产成人片在线观看| a国产成人免费视频| 亚洲精品高清视频| 国产精品色拉拉免费看| 亚洲精品人成网在线播放影院| 成人免费午夜无码视频| 亚洲日韩精品无码AV海量| 国产成人免费ā片在线观看| 午夜不卡AV免费| 国产av无码专区亚洲av果冻传媒| a级黄色毛片免费播放视频| 亚洲欧洲日产国产综合网| 免费国产作爱视频网站| 国产精品成人亚洲| 亚洲精品无码午夜福利中文字幕 | 日韩在线观看视频免费| 中文字幕一精品亚洲无线一区 | 久久久久久精品免费免费自慰| 亚洲一区二区三区91| 免费观看男人免费桶女人视频| 免费无码一区二区| 亚洲精品国产成人专区| 全免费a级毛片免费看无码| WWW免费视频在线观看播放| 亚洲精品国产手机| 日本a级片免费看| 日本免费人成网ww555在线| 亚洲av永久无码精品天堂久久 | 国产精品黄页免费高清在线观看| 亚洲成色在线综合网站| 成在人线AV无码免费| 一级毛片**免费看试看20分钟| 亚洲a在线视频视频| 免费在线不卡视频| 1000部羞羞禁止免费观看视频| 国产综合成人亚洲区| 亚洲精品资源在线|