EJB、Spring注解表关联

一般在使用框架或EJB的时候,需要实体对对应表关联的映射  在抛开配置文件的时候就需要注解来解决映射关系了 

表关系大概上分单向、双向关联,细致的又分为一对一、一对多、多对一、多对多这些具体的关联。

一对一  

   单向:

    在默认的情况下,关联的实体的主键一般是用来做外键的,如果不用主键作为外键的话可关联其他属性,需要为JoinColumn添加referencedColumnName=“字段名“

@OneToOne
@JoinColumn
public Org getOrg(){
  return org;  
}

  双向关联(Bidirectional)

    1、两个有关联的表在实体映射时都需要配置@OneToOne,就是在单向关系映射的情况下在另外一个表也要加注解配置

@Entity
@Table(name=”address")
public class Address implements java.io.Serializable{
    ……………………
    private Customer customer;
    
    @OneToOne(mappedBy="address")
    public Custome getCoustomer(){}
}



@Entity
@Table(name="customer")
public class Customer implements java.io.Serializable{
  ……
  private Address address;
  
  @OneToOne(cascade={})
  @JoinColumn(name="address_id")
  public Address getAddress(){
    }            
}

  http://blog.sina.com.cn/s/blog_605f5b4f0100hgxd.html  有不懂mappedBy属性的可参考

  2、双向一对一EJB还有另外一种就是主键关联

  需要加上@PrimaryKeyJoinColumn注解配置

  3、默认关联就是外键关联了  这样只需要一个@OneToOne就可以了

  总体来说,在确认表关系后根据设计有三种选择 

   1、外键关联

   2、主键关联

     3、字段关联

  然后再根据主从关系配置mappedby属性

 一对多

  单向:

    一对多是系统中常常出现的实体关系,比如说:员工&部门、学生&班级、专业&学校等等实例。在EJB、Hibernate、SpringMVC中都是由@OneToMany表示

    通常有三种策略去映射这种单向一对多的关系:1、外键关联 2、表关联 3、默认关联

转载于:https://www.cnblogs.com/Shalove/archive/2013/06/02/3113430.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值