Java hibernate中的继承,其中派生类没有关联的表

Java hibernate中的继承,其中派生类没有关联的表,java,hibernate,jpa,Java,Hibernate,Jpa,我正在为一个需要表示报表的应用程序编写实体,所有这些报表都有一些公共字段,如;报表的名称、周期等。所有这些报表都包含具有不同列的表,您可以将其视为Excel表中的表示形式。到目前为止,我已经设计了我的数据库表,其中所有报告的公共字段将存储在父表中,对于每个报告,将有另一个包含多个表的表,这些表将存储每个报告特定的数据。在数据库方面,这个设计很适合我。 在为hibernate创建实体时,我想创建一个包含公共字段的父报表类。此报表类必须由所有特定报表类继承,并且将在派生类中定义更多字段,这些字段将特

我正在为一个需要表示报表的应用程序编写实体,所有这些报表都有一些公共字段,如;报表的名称、周期等。所有这些报表都包含具有不同列的表,您可以将其视为Excel表中的表示形式。到目前为止,我已经设计了我的数据库表,其中所有报告的公共字段将存储在父表中,对于每个报告,将有另一个包含多个表的表,这些表将存储每个报告特定的数据。在数据库方面,这个设计很适合我。 在为hibernate创建实体时,我想创建一个包含公共字段的父报表类。此报表类必须由所有特定报表类继承,并且将在派生类中定义更多字段,这些字段将特定于每个报表。这些字段将映射到子表中的列。 我研究了单表继承,但问题是我不能定义任何分隔符,而且@MappedSuperclass在这里似乎不是一个解决方案,因为我的父类需要映射到一个表

实体类必须如下所示:

public class Report // maps to parent table
{
  private Integer reportId;
  private String reportName;
}

public class ReportAData // maps to child table
{
  private Date column1;
  private String column2;
}

public class ReportA extends Report // does not map to any table
{
  private list<ReportARecord> records;
}
任何人都可以建议我怎么做。

表每类继承策略听起来像你想要的。请看一个例子


基本上,您将有一个用于Report的表,每个子类都有一个表,每个子类都有一个用于Report表和所有其他特定数据的外键。

我使用@Entity管理它,即使类没有表:

@Entity
@Table(name = "REPORT")
@Inheritance(strategy = InheritanceType.JOINED)
public class Report // maps to parent table
{
  private Integer reportId;
  private String reportName;
}

@Entity
public class ReportA extends Report // does not map to any table
{
  private list<ReportARecord> records;
}

但是我没有任何子类的表,创建子类的目的只是因为每个子类都有一些不同类型的合成对象,通常是一个列表。您写过,所有报告的公共字段将存储在父表中,对于每个报表,都会有另一个多表的表,它将存储每个报表特定的数据,据我所知,每个报表类型都有一个表。另外,您能否解释一下,问题的意思是我不能定义任何分隔符?