首页 / 软件开发 / JAVA / hibernate annoation (六 复合主键)
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))