您的位置:首页 > 其它

hibernate注解

2015-11-02 08:44 190 查看
一对一关联:

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="主体端的属性名")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: