瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          hibernate annoation (六 復合主鍵)

          Posted on 2009-11-02 14:55 瘋狂 閱讀(421) 評論(0)  編輯  收藏 所屬分類: hibernate

          主鍵類:定義為@Embeddable

          @Embeddable
          public class F implements Serializable{//序列化 并且最好override equals() and hashCode()

           private int id;
           private int id2;
           public int getId() {
            return id;
           }
           public void setId(int id) {
            this.id = id;
           }
           public int getId2() {
            return id2;
           }
           public void setId2(int id2) {
            this.id2 = id2;
           }
           
          }
          持久化類:

          @Entity
          @Table(name="E_USER",uniqueConstraints={
            @UniqueConstraint(columnNames={"yahoo"})
            })
          @IdClass(F.class)//將F作為主鍵類
          public class User {

           private int id;
           private int id2;

          //id id2必須和F中的屬性一致
           private String yahoo;
           @Id
           @GeneratedValue(strategy=GenerationType.IDENTITY)

           public int getId() {
            return id;
           }
           public void setId(int id) {
            this.id = id;
           }
           @Id
           @GeneratedValue(strategy=GenerationType.IDENTITY)
           public int getId2() {
            return id2;
           }
           public void setId2(int id2) {
            this.id2 = id2;
           }
           public String getYahoo() {
            return yahoo;
           }
           public void setYahoo(String yahoo) {
            this.yahoo = yahoo;
           }
           
          }


          或者了一種方法:

          使用@EmbeddedId F f;

          最終生成sql:(mysql)

          create table E_USER (id integer not null, id2 integer not null, yahoo varchar(255), primary key (id, id2), unique (yahoo))

          主站蜘蛛池模板: 六安市| 乌拉特后旗| 双辽市| 陵川县| 新民市| 富民县| 奉贤区| 重庆市| 宿松县| 江门市| 甘德县| 阳曲县| 荣成市| 中方县| 宜宾县| 绥德县| 游戏| 浦东新区| 杭锦后旗| 阿城市| 沾化县| 木兰县| 万全县| 富蕴县| 花莲市| 巴南区| 诸城市| 寿阳县| 夏河县| 井研县| 绍兴县| 怀宁县| 合作市| 邹城市| 墨竹工卡县| 九龙坡区| 甘泉县| 运城市| 乳山市| 常宁市| 拜城县|