hibernate annoation (六 复合主键)2009-10-10 javaeye ericjoe主键类:定义为@Embeddable@Embeddable public class F { 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; }
}最终生成sql:(mysql)create table E_USER (id integer not null, id2 integer not null, yahoo varchar(255), primary key (id, id2), unique (yahoo))