我正在尝试创建一系列对象,所有这些对象都存储在单独的表中,但是所有这些表上都有一组共同的字段。我想Hibernate做一个所有这些表的UNION,但不包括超类作为一个表。
当我用just注释超类时:@MappedSuperclass@Inheritance(策略= InheritanceType.TABLE_PER_CLASS)
…Hibernate将为父类的(n)个子类型分别运行(n)个查询。
当我删除@MappedSuperclass并将@Entity放在超类上时,Hibernate将执行花哨的UNION查询,但将超类作为UNION中的表包含(没有超类的表)。
我如何得到它联合在一起的所有子类(而不是单独的查询)没有使父类一个@Entity(因为它不是一个实体,没有表为它)?
我发现将父类标记为"抽象"可以达到目的,Hibernate不再将其包含在UNION中,而将将所有子类合并在一起。