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

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

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

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    EJB學(xué)習(xí)日記(18)

    Posted on 2007-10-12 10:48 semovy 閱讀(271) 評論(0)  編輯  收藏 所屬分類: EJB
    繼承映射策略之----每個具體類一張表

    昨天我們看了繼承關(guān)系中的實(shí)現(xiàn),昨天是用一張表保存所有級別的類,今天我們來了解一下第二種實(shí)現(xiàn)方法,每一個類一個單獨(dú)的表的實(shí)現(xiàn),在數(shù)據(jù)庫我們的例子表現(xiàn)如下:

    create table Person (
       id 
    integer primary key not null,
       firstName 
    varchar(255),
       lastName 
    varchar(255),
    );

    create table Customer (
       id 
    integer primary key not null,
       firstName 
    varchar(255),
       lastName 
    varchar(255),
       street 
    varchar(255),
       city 
    varchar(255),
       state 
    varchar(255),
       zip 
    varchar(255),
    );

    create table Employee (
       id 
    integer primary key not null,
       firstName 
    varchar(255),
       lastName 
    varchar(255),
       street 
    varchar(255),
       city 
    varchar(255),
       state 
    varchar(255),
       zip 
    varchar(255),
       employeeId 
    integer,
    );

    此種方式和SINGLE_TABLE的最大的不同就是這些表里面沒有了辨別器這一列了,我們不再需要為每一個特定的類設(shè)定一個標(biāo)志以識別它是哪個具體的類了。在這種方式的實(shí)現(xiàn)里,每一張表都保存了該類的所有的屬性,當(dāng)然也包括它從父類中繼承過來的屬性。我們看看代碼吧:

    @Entity
    @Inheritance(strategy
    =InheritanceType 
    .TABLE_PER_CLASS)
     

    public class Person {

    }

    @Entity
    public class Customer extends Person {

    }

    @Entity
    public class Employee extends Customer {

    }

    從以上代碼可以看出,唯一需要的元數(shù)據(jù)注釋只有InheritanceType,并且這個注釋僅僅是用在基類Person上面而已,在他的子類中,根本看不出來有什么不一樣,它們就像一個很普通的實(shí)體BEAN一樣。

    優(yōu)點(diǎn):
    相比于SINGLE_TABLE的映射策略來說,此策略的優(yōu)點(diǎn)是你可以在每一個子類上定義一些屬性的約束,比方說某些屬性不能為null等等,這些都是可以定義的,但是你在SINGLE_TABLE里面卻是不能定義的,它還有一個優(yōu)點(diǎn)就是,它對于處理那些遺留的數(shù)據(jù)庫來說更加的容易一些,因?yàn)樗`活一些。
    缺點(diǎn):
    此策略依然是不規(guī)范的,沒有做到物盡其用,因?yàn)樗鼮槊恳粋€子類都重復(fù)定義了很多列,這勢必給數(shù)據(jù)庫的資源造成了浪費(fèi),當(dāng)需要進(jìn)行多態(tài)加載的時候,就會進(jìn)行多次查詢,這樣也會降低數(shù)據(jù)庫的查詢效率,這樣比較起來就沒有SINGLE_TABLE 策略速度快,但是它在別的方面性能會好一些,在開發(fā)你的實(shí)體BEAN的時候,最好不要用這種策略,除非你不得不這樣做,否則還是用第三種策略來得更好一些,那第三種策略是怎樣實(shí)現(xiàn)的呢,我們下次再講。

    主站蜘蛛池模板: 成人毛片免费观看视频大全| 最近免费字幕中文大全视频| 国产免费人人看大香伊| 亚洲成av人片不卡无码| 亚欧色视频在线观看免费| 亚洲天堂男人天堂| 131美女爱做免费毛片| 亚洲精品美女久久久久| 99在线精品免费视频九九视| 亚洲中文字幕久在线| 成全影视免费观看大全二| 亚洲中文字幕无码亚洲成A人片| 最近中文字幕mv免费高清电影| 亚洲熟妇无码av另类vr影视| 日韩在线看片免费人成视频播放| 相泽南亚洲一区二区在线播放| 亚洲国产成人精品女人久久久| 2022免费国产精品福利在线| 国产亚洲福利精品一区| 亚洲免费在线播放| 亚洲免费福利视频| 免费高清资源黄网站在线观看| 国产大陆亚洲精品国产| 亚洲欧洲自拍拍偷午夜色无码| 亚洲精品免费观看| 亚洲另类无码专区首页| 久久亚洲精品无码观看不卡| 久久国产免费一区| 最新亚洲卡一卡二卡三新区| 亚洲国产成人乱码精品女人久久久不卡 | 午夜视频免费在线观看| 亚洲国产成人手机在线电影bd | 亚洲精品国产福利一二区| 两性色午夜视频免费播放| 亚洲成a人片在线网站| 国产女高清在线看免费观看| 久久99精品免费一区二区| 亚洲最新中文字幕| 亚洲人成电影网站国产精品 | 亚洲国产精品人久久电影| 在线观看国产情趣免费视频|