7.1.3 多个表映射为一个实体

现在增加一个员工照片表“tb_employee_photo”,保存员工的照片。该表也作为员工表的另外一个从表,而不映射为实体。在这种情况下,一个员工表,有两个从表合同表和员工照片表。

员工照片表的表结构的SQL语句如以下所示:

CREATE TABLE  tb_employee_photo (

  id int(20) NOT NULL auto_increment,

  data blob ,

  employee_id int(20),

  PRIMARY KEY  (id)

);

此时员工实体的代码修改如以下所示:

/**员工实体*/

@Entity

/**主表为tb_employee员工表*/

@Table(name = "tb_employee")

/**

 * 从表为tb_contract合同表, tb_contract表中的employee_id关联tb_employee的主键

 * 从表为tb_employee_photo合同表, tb_employee_photo表中的employee_id关联tb_employee的主键

 */

@SecondaryTables({

         @SecondaryTable(

                   name = "tb_contract",

                   pkJoinColumns = { @PrimaryKeyJoinColumn(name = "employee_id") }

         ),

         @SecondaryTable(

                   name = "tb_employee_photo",

                   pkJoinColumns = { @PrimaryKeyJoinColumn(name = "employee_id") }

         )

})

public class EmployeeEO implements Serializable {

         public EmployeeEO() {

         }

 

         private Integer id;

 

         ……中间代码省略

         private byte[] photo;

 

         /**员工照片*/

         @Lob

         @Basic(fetch=FetchType.LAZY)

         @Column(name = "data", table = "tb_employee_photo")

         public byte[] getPhoto() {

                   return photo;

         }

 

         public void setPhoto(byte[] photo) {

                   this.photo = photo;

         }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值