我们在数据库中有一个表,它具有以下结构:
referenceId - int foreign key to various tables
tableReference - String defining the table
这是一个好的设计,是否可以映射这种关系?
答案 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
以标识目标表。