博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@ManyToOne和@OneToMany 注解
阅读量:5156 次
发布时间:2019-06-13

本文共 872 字,大约阅读时间需要 2 分钟。

(1)ManyToOne(多对一)单向:不产生中间表,但可以用@Joincolumn(name="  ")来指定生成外键的名字,外键在多的一方表中产生!

(2)OneToMany(一对多)单向:会产生中间表,此时可以用@onetoMany @Joincolumn(name=" ")避免产生中间表,并且指定了外键的名字(别看          @joincolumn在一中写着,但它存在在多的那个表中)

(3)OneToMany ,ManyToOne 双向(两个注解一起用的):如果不在@OneToMany中加mappedy属性就会产生中间表,此时通常在@ManyToOne的注            解下再添上注解@Joincolumn(name=" ")来指定外键的名字(说明:多的一方为关系维护端,关系维护端负责外键记录的更新,关系被维护端没有权利更新          外键记录)!(@OneToMany(mappedBy="一对多中,多中一的属性")出现mapby为被维护端|||默认为延迟加载)

 

用例:@ManyToOne(fetch=FetchType.LAZY)

@JoinColumn(name="child_id")
private OrderChild orderChild;

 

  @OneToMany(mappedBy="orderChild",fetch=FetchType.LAZY,cascade={CascadeType.MERGE})

  @NotFound(action=NotFoundAction.IGNORE)//代表可以为空,允许为null
  private List<OrderChildGoods> goodsList;

 

 

hibernate中@ManyToOne默认是立即加载,@OneToMany默认是懒加载

但是如果加上了@NotFound之后设置的fetch=FetchType.LAZY是不起作用的,也就是设置@NotFound后变为了立即加载eager

 

转载于:https://www.cnblogs.com/zqyanywn/p/7753496.html

你可能感兴趣的文章
android listview 异步加载问题
查看>>
Arcgis for javascript不同的状态下自己定义鼠标样式
查看>>
查看.a架构文件
查看>>
结构体数组
查看>>
软工视频(33~36)-用户界面设计
查看>>
第七章小结
查看>>
Php综合手册
查看>>
vmware虚拟机磁盘挂载
查看>>
007_控制器可扩展性
查看>>
SQL server 第三方驱动 JDTS
查看>>
洛谷P3048 [USACO12FEB]牛的IDCow IDs
查看>>
一些计划
查看>>
SQL Server ->> SQL Server 2016新特性之 --- Query Store
查看>>
最大连续子序列
查看>>
HDU1257
查看>>
初步了解HTTP
查看>>
unittest----assert断言的使用
查看>>
caffe+opencv3.3.1
查看>>
利用正则按固定长度分割字符串
查看>>
NGUI里的sprite和label有白色的边框
查看>>