hibernate注解

来源:互联网 发布:手机屏幕亮度调节软件 编辑:程序博客网 时间:2024/05/24 07:09
一对一关联:
1.主表类A与从表类B的主键值相对应。
主表:@OneToOne(cascade = CascadeType.ALL)
     @PrimaryKeyJoinColumn
     public B getB(){
  Return b;
    }
从表:无


2.主表A中有一个从表属性是B类型的b
主表:@OneToOne(cascade = CascadeType.ALL)
   @JoinColumn(name="主表外键")   //这里指定的是数据库中的外键字段。
   public B getB(){
return b;
       }
从表:无


3.主表A中有一个从表属性是B类型的b,同时,从表B中有一个主表属性是A类型的a
主表:@OneToOne(cascade = CascadeType.ALL)
   @JoinColumn(name="主表外键")   //这里指定的是数据库中的外键字段。
   public B getB(){
return b;
       }
从表:@OneToOne(mappedBy = "主表类中的从表属性")
   public 主表类 get主表类(){
return 主表对象
      }








一对多关联:


1.单向一对多:一方有集合属性,包含多个多方,而多方没有一方的引用。
在一方:
@OneToMany  默认会使用连接表做一对多关联
添加@JoinColumn(name="xxx_id") 后,就会使用外键关联,而不使用连接表了。


2.双向一对多
1)在多方
@ManyToOne
@JoinColumn(name="自己的数据库外键列名")
 
2)在一方
@OneToMany(mappedBy="多端的关联属性名")
@JoinColumn(name="对方的数据库外键列名")










多对一关联:


1.单向多对一:多方有一方的引用,一方没有多方的引用。
  在多方
@ManyToOne(targetEntity=XXXX.class)   //指定关联对象
@JoinColumn(name="")                            //指定产生的外键字段名


2.双向多对一:配置方式同双向一对多。










多对多关联:
1.单向多对多:
在主控方:
@ManyToMany
@JoinTable(name="中间表名", 
joinColumns={@JoinColumn(name="中间表中主表的关联列")},
inverseJoinColumns={@JoinColumn(name="中间表中从表的关联列")})








2.双向多对多
在主控方:
@ManyToMany
@JoinTable(name="中间表名", 
joinColumns={@JoinColumn(name="中间表中主表的关联列")},
inverseJoinColumns={@JoinColumn(name="中间表中从表的关联列")})


在被控方:
  
@ManyToMany(mappedBy="主体端的属性名")
0 0
原创粉丝点击