【发布时间】:2014-12-11 11:15:50
【问题描述】:
我正在为需要表示报告的应用程序编写实体,所有这些报告都有一些公共字段,例如;报告名称、期间等。所有这些报告都包含具有不同列的表格(您可以将其视为 Excel 表中的表示形式)。到目前为止,我已经设计了我的数据库表,其中所有报告的公共字段将存储在父表中,并且对于每个报告,将有另一个包含多个表的表来存储每个报告特定的数据。在数据库方面,这种设计对我来说很好。 在为休眠创建实体时,我想创建一个包含公共字段的父报表类。此报表类必须由所有特定报表类继承,并且将在派生类中定义更多字段,这些字段将特定于每个报表。这些字段将映射到子表中的列。 我研究了单表继承,但问题是我无法定义任何分隔符,@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;
}
谁能建议我如何做到这一点。
【问题讨论】: