一对一
@OneToOne(cascade={CascadeType.REFRESH,CascadeType.PERSIST})
@JoinColumn(name="")
一对多
@OneToMany(cascade={CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.LAZY,mappedBy="x")
mappedBy表明这个类是被维护端,x是set集合中的类的属性
多对一
@ManyToOne(cascade={CascadeType.REFRESH,CascadeType.MERGE},optinal=false)
@JoinColumn(name="")设置外键字段名
optinal true说明是可选的,即外键可以为空
false,即外键不许为空
多对多
维护端注解
@ManyToMany (cascade = CascadeType.REFRESH)
@JoinTable (//关联表
name = "student_teacher" , //关联表名
inverseJoinColumns = @JoinColumn (name
= "teacher_id" ),//被维护端外键
joinColumns = @JoinColumn (name
= "student_id" ))//维护端外键
被维护端注解
@ManyToMany(
cascade = CascadeType.REFRESH,
mappedBy = "teachers",//通过维护端的属性关联
fetch = FetchType.LAZY)
关系维护端删除时,如果中间表存在些纪录的关联信息,则会删除该关联信息;
关系被维护端删除时,如果中间表存在些纪录的关联信息,则会删除失败 .
@Entity
|