7.3.5.2 映射顶层实体类

本文介绍了在Hibernate中使用@TablePerClass继承策略时的配置,包括@Entity注解、@TableGenerator的使用,以避免主键冲突问题。示例代码展示了如何为顶层实体类EmployeeEO设置表映射和主键生成策略。
摘要由CSDN通过智能技术生成

在基类使用TABLE_PER_CLASS映射时,只需要指定所映射的表和映射策略,而不需要设置@DiscriminatorColumn @DiscriminatorValue,以下为EmployeeEO的代码:

@Entity

@Table(name = "tb_employee")

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

@TableGenerator(

                   name = "employee_gen",

                   table = "tb_generator",

                   pkColumnName = "gen_name",

                   valueColumnName = "gen_value",

                   pkColumnValue = "employee_id",

                   allocationSize = 1

)

public class EmployeeEO implements Serializable {

 

         private Integer id;

 

         private String name;

 

         @Id

         @GeneratedValue(strategy = GenerationType.TABLE, generator = "employee_gen")

         public Integer getId() {

                   return id;

         }

         //gettersetter方法省略

}

注意,这里除了改变了继承策略外,也更改了主键的生成策略,使用表生成主键。如果使用自动生成主键,子表的主键值可能会与父表的主键值冲突,导致不能正确的创建实体。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值