zoukankan      html  css  js  c++  java
  • @ManyToOne和@OneToMany 注解

    (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

  • 相关阅读:
    操作标签的属性和属性值 table表格
    dom基本获取 标签文本操作
    延时器 清除延时器
    倒计时
    电子时钟
    时间戳
    设定时间的方法
    内置对象Date
    对象的基本特点
    终于有人把云计算、大数据和 AI 讲明白了【深度好文】
  • 原文地址:https://www.cnblogs.com/zqyanywn/p/7753496.html
Copyright © 2011-2022 走看看