JPA联合主键
create table a(
id int primary key auto_increment,
name char(10)
);
create table b(
a_id int,
id int,
name char(10),
primary key(a_id,id)
);
像这样表结构该怎么建立实体类,
。。求救。。谢谢
[解决办法]
有两种方式定义“联合主键”,分别为:Primary-Key Classes和Composite Keys。它们相对应的annotation分别为:@IdClass和@EmbeddedId。
下面的例子是参考《Enterprise JavaBean 3.0》的
背景为:
1) 表中的字段有: firstName, lastName, ssn
2)“联合主键”有: lastName和ssn。
===
Primary-Key Classes方式
===
1. 先定义一个primary-key class,这个class的要求有:
1)serializable, 2)有无参构造函数, 3)实现方法equals( )和hashCode( )
比如:
public class CustomerPK implements java.io.Serializable { private String lastName; private long ssn; public CustomerPK( ) {} public boolean equals(Object obj){...} public int hashCode( ) {...}}