JPA外键到多个表

时间:2014-08-08 10:22:27

标签: java database jpa

我们在数据库中有一个表,它具有以下结构:

referenceId - int foreign key to various tables
tableReference - String defining the table

这是一个好的设计,是否可以映射这种关系?

1 个答案:

答案 0 :(得分:3)

极少数信息可以为您提供任何解决方案,但JPA Joined Inheritance的工作原理如下:

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="PROJ_TYPE")
@Table(name="PROJECT")
public abstract class Project {
  @Id
  private long id;
  ...
}

@Entity
@DiscriminatorValue("L")
@Table(name="LARGEPROJECT")
public class LargeProject extends Project {
  private BigDecimal budget;
}

@Entity
@DiscriminatorValue("S")
@Table(name="SMALLPROJECT")
  public class SmallProject extends Project {
}

这将在DB中管理三个表,其中主表PROJECT包含列PROJ_TYPE以标识目标表。