GitHub
src="//ghbtns.com/github-btn.html?user=je-ge&repo=jpa&type=watch&count=true" scrolling="0" width="110" height="20">
JPA中的@ManyToMany
@ManyToMany注释表示模型类是多对多关系的一端。
@JoinTable 描述了多对多关系的数据表关系。
- name 属性指定中间表名称
- joinColumns 定义中间表与Teacher 表的外键关系
- inverseJoinColumns属性定义了中间表与另外一端(Student)的外键关系
单向多对多表的ddl语句
CREATE TABLE `t_student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`sname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
CREATE TABLE `t_teacher` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`tname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `t_teacher_student` (
`teacher_id` bigint(20) NOT NULL,
`student_id` bigint(20) NOT NULL,
PRIMARY KEY (`teacher_id`,`student_id`),
KEY `FK_o82lxg0wi1y88lit4fy7lkg7t` (`student_id`),
CONSTRAINT `FK_1epgkih044inndyv1dtihcb7r` FOREIGN KEY (`teacher