loading ...
loading...

2006-09-01 | JPA的Secondary table(6)

分享

@SecondaryTable,@SecondaryTables允许你把一个entity映射到多表上,有点类似于主从表的概念,其实也是一对一或者一对多关系映射的简化版.举个简单例子,如Customer有属性street,city,state.这三个属性构成了顾客的地址,我们希望把此3个属性映射到另一张表上,作为主表的从表,此表跟主表就是一对一关系,通过address_id进行主键关联.那么,我们的Customer来应该像这样:

@Entity
@Table(name = "CUSTOMER")
@SecondaryTable(name = "EMBEDDED_ADDRESS",pkJoinColumns={@PrimaryKeyJoinColumn(name = "ADDRESS_ID")})
public class Customer implements java.io.Serializable
{
   private int id;
   private String first;
   private String last;
   private String street;
   private String city;
   private String state;
   private String zip;
  ........

  ........

@SecondaryTable的name指定表名,pkJoinColumns指定从表关联的主键,还没完,必须给street,city,state指定表名:

@Column(name = "STREET", table = "EMBEDDED_ADDRESS")
   public String getStreet()
   {
      return street;
   }

   public void setStreet(String street)
   {
      this.street = street;
   }

   @Column(name = "CITY", table = "EMBEDDED_ADDRESS")
   public String getCity()
   {
      return city;
   }

   public void setCity(String city)
   {
      this.city = city;
   }

   @Column(name = "STATE", table = "EMBEDDED_ADDRESS")
   public String getState()
   {
      return state;
   }

   public void setState(String state)
   {
      this.state = state;
   }

   @Column(name = "ZIP", table = "EMBEDDED_ADDRESS")
   public String getZip()
   {
      return zip;
   }

   public void setZip(String zip)
   {
      this.zip = zip;
   }

不错吧,是个很不错的功能,ejb3的大规模应用值的期待.

分享 分享 |  评论 (1) |  阅读 (?)  |  固定链接 |  类别 (Java) |  发表于 20:47
搜狐博客温馨提示:搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
正在读取评论信息...
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  *中国人爱国心,搜狗输入法爱国主题皮肤下载>>
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复