我们在数据库中有一个表,其结构如下:
referenceId - int foreign key to various tables
tableReference - String defining the table
Run Code Online (Sandbox Code Playgroud)
这是一个好的设计吗?是否可以以某种方式映射这种关系?
很少有信息可以为您提供任何解决方案建议,但JPA 联合继承的工作原理如下:
@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 {
}
Run Code Online (Sandbox Code Playgroud)
这将管理数据库中的三个表,其中主表包含用于标识目标表的PROJECT
列。PROJ_TYPE