Annotation對Hibernate中聯(lián)合主鍵定義java 2010-03-31 11:08:46 閱讀357 評論0 字號:大 中 小 public class User { private int id; private String name; private String address; public int getId() { return id; } public String getName() { return name; } public String getAddress() { return address; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setAddress(String address) { this.address = address; } } 在如上類中假設需要定義一個聯(lián)合主鍵 id,name,在hibernate中利用注解映射方法有如下三種:
2、將組件的屬性注解為@EmbeddedId 首先需要抽象出一個組件類,在User中進行引用 public class UserPk implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; public int getId() { return id; } public String getName() { return name; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } } 其次需要在實體類中對組件屬性注解為嵌入式的ID,即:@EmbeddedId @Entity public class User { private UserPk userPk; private String address; @EmbeddedId public UserPk getUserPk() { return userPk; } public String getAddress() { return address; } public void setUserPk(UserPk userPk) { this.userPk = userPk; } public void setAddress(String address) { this.address = address; } } 3、將類注解為@IdClass,并將該實體中所有屬于主鍵屬性都注解為@Id 抽象出組件類 public class UserPk implements Serializable { private static final long serialVersionUID = 1L; private int id; private String name; public int getId() { return id; } public String getName() { return name; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } } 實體類 @Entity @IdClass(value = UserPk.class) public class User { private int id; private String name; private String address; @Id public int getId() { return id; } @Id public String getName() { return name; } public String getAddress() { return address; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setAddress(String address) { this.address = address; } } |
|
來自: 昵稱15698534 > 《hibernate》