当前位置: 代码迷 >> J2EE >> JPA联结主键
  详细解决方案

JPA联结主键

热度:121   发布时间:2016-04-22 03:07:00.0
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( ) 
比如:
Java code
public class CustomerPK  implements java.io.Serializable {   private String lastName;   private long ssn;   public CustomerPK( ) {}   public boolean equals(Object obj){...}   public int hashCode( ) {...}}
  相关解决方案