分享

jpa?一对一?一对多?多对多

 旭龙 2013-01-06

一对一
@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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多