首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

JPA联结主键

2011-12-10 
JPA联合主键create table a(id int primary key auto_increment,name char(10))create table b(a_id int,

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( ) {...}} 

热点排行