Dev@Free

          zJun's Tech Weblog

          [Hibernate Annotations] 主鍵映射

          1.簡(jiǎn)單主鍵:
          使用
          @Id 注解可以將實(shí)體bean中的某個(gè)屬性定義為標(biāo)識(shí)字段.使用 @GeneratedValue 注解可以定義標(biāo)識(shí)字段的生成策略:

          AUTO - 可以是identity類型的字段,或者sequence類型或者table類型,取決于不同的底層數(shù)據(jù)庫(kù).
          TABLE - 使用表保存id值
          IDENTITY - identity字段
          SEQUENCE - sequence

          @Id?@GeneratedValue(strategy = GenerationType.IDENTITY)
          public ?Long?getId()?{??}

          2.組合主鍵:

          定義組合主鍵的幾種語(yǔ)法:
          • 將組件類注解為@Embeddable,并將組件的屬性注解為@Id
          • 將組件的屬性注解為@EmbeddedId
          • 將類注解為@IdClass,并將該實(shí)體中所有屬于主鍵的屬性都注解為@Id
          使用 @IdClass 組合來(lái)定義組合主鍵類 , 對(duì)應(yīng)了一個(gè)實(shí)體類中的多個(gè)字段或?qū)傩? 而且主鍵類中用于定義主鍵的字段或?qū)傩院蛯?shí)體類中對(duì)應(yīng)的字段或?qū)傩栽陬愋蜕媳仨氁恢?

          @Entity
          @IdClass(FootballerPk.
          class )? // ?指明主鍵類
          public ? class ?Footballer?{
          // part?of?the?id?key
          @Id? public ?String?getFirstname()?{
          return ?firstname;
          }

          public ? void ?setFirstname(String?firstname)?{
          this .firstname? = ?firstname;
          }

          // part?of?the?id?key
          @Id? public ?String?getLastname()?{
          return ?lastname;
          }

          public ? void ?setLastname(String?lastname)?{
          this .lastname? = ?lastname;
          }

          public ?String?getClub()?{
          return ?club;
          }

          public ? void ?setClub(String?club)?{
          this .club? = ?club;
          }

          // appropriate?equals()?and?hashCode()?implementation
          }

          @Embeddable??
          // ?主鍵類
          public ? class ?FootballerPk? implements ?Serializable?{
          // same?name?and?type?as?in?Footballer
          public ?String?getFirstname()?{
          return ?firstname;
          }

          public ? void ?setFirstname(String?firstname)?{
          this .firstname? = ?firstname;
          }

          // same?name?and?type?as?in?Footballer
          public ?String?getLastname()?{
          return ?lastname;
          }

          public ? void ?setLastname(String?lastname)?{
          this .lastname? = ?lastname;
          }

          // appropriate?equals()?and?hashCode()?implementation
          }


          posted on 2007-03-07 15:49 zJun's帛羅閣 閱讀(2550) 評(píng)論(0)  編輯  收藏 所屬分類: 開源軟件

          導(dǎo)航

          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統(tǒng)計(jì)

          常用鏈接

          留言簿(15)

          隨筆分類

          隨筆檔案

          相冊(cè)

          收藏夾

          博客

          文檔

          站點(diǎn)

          論壇

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 孝义市| 白玉县| 额敏县| 汕尾市| 英吉沙县| 吉林市| 象山县| 太仓市| 历史| 凤翔县| 固阳县| 镇宁| 万州区| 普宁市| 绥化市| 北辰区| 东方市| 保康县| 商都县| 普安县| 寿阳县| 郁南县| 石景山区| 大竹县| 扎兰屯市| 平度市| 仁怀市| 平陆县| 正蓝旗| 招远市| 芦溪县| 中方县| 安化县| 永城市| 资溪县| 保康县| 巴林左旗| 乌拉特前旗| 朝阳县| 哈密市| 宜阳县|