下边讲述Hibernate多对多关系映射。
多对多关系的表的结构为:
两个实体表,还包含一个关系表,关系表为复合主键,如果要使用Hibernate多对多关系映射,则关系表必须只包含两个字段,如果生成了Hibernate多对多关系映射,则中间关系表不会生成实体(即没有对应的pojo类,更没有其映射文件)。
1、建立表
- DROP TABLE user_course ;
- DROP TABLE user ;
- DROP TABLE course ;
- CREATE TABLE user (
- userid varchar(20) primary key ,
- name varchar(20) not null ,
- age int not null ,
- birthday date not null
- );
- CREATE TABLE course (
- id int primary key auto_increment ,
- title varchar(50) not null,
- description text not null,
- course_num int not null
- );
- CREATE TABLE user_course (
- userid varchar(20) ,
- cid int ,
- primary key (userid, cid ),
- foreign key (userid) references user (userid) on delete cascade ,
- foreign key (cid) references course (id) on delete cascade
- );
2、生成映射
选择三个表一起生成映射,选择主键生成方式的那一步需要注意:
然后每个表的主键生成方式,各自独立设置,即点击下一步再设置,对于中间表,不需要选择主键生成方式(参考复合主键映射)。