多对多
学生和老师的问题就是明显的多对多问题,这里我们采用学生控制老师,即保存学生的时候保存老师,所以在学生里面设置一个cascade即可。但是由于是多对多问题,所以我们还是要建立一个中间表来存放两方的外键。
学生代码(注解配置):
package manytomany;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name="t_student")
public class Student {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
@ManyToMany(targetEntity=Teacher.class)
//使用jointable来描述中间表,并且描述中间表中外键与student,teacher的关系
//joinColumns用来描述student与中间表的映射关系
//inverseJoinColumns用来描述teacher与中间表的映射关系
@JoinTable(name="s_t",joinColumns={
@JoinColumn