如何在JPA中从多个表定义外键

时间:2017-09-29 14:51:03

标签: java hibernate jpa

在JPA中,实体TimeSeries的定义如下:

@Entity
@Table(name = "time_series")
@NamedQuery(name = "TimeSeries.findAll", query = "SELECT t FROM TimeSeries t")
public class TimeSeries implements Serializable {
  private static final long serialVersionUID = 1L;

  @Id
  @Column(name = "id_time_series", unique = true, nullable = false, precision = 18)
  private Long idTimeSeries;

  @Column(name = "id_element", nullable = false, precision = 18)
  private Long idElement;

  @Column(name = "param_1", precision = 18)
  private Long param1;

  @Column(name = "series_type", nullable = false, precision = 18)
  private Long seriesType;

问题在于字段id_element。此id可以表示可以定义时间序列的任何对象。例如,如果我有PK A的表id_A和PK B的表id_B,那么id_element可以从列{{1}获取值来自表格id_A,或来自表格A的{​​{1}}。表id_BB之间唯一的共同点是它们都有ID和名称。

有没有办法将A定义为来自表格Bid_element的FK?我查看了A注释以关联实体B@MappedSuperClass,但我不确定JPA是否会理解A与实体{B相关1}}或id_element

BTW,数据库模型由Java遗留代码使用。如有必要,只要遗留代码继续有效,我就可以对数据库进行微小的修改。我们正在将持久性迁移到JPA。

提前致谢。

0 个答案:

没有答案