我正在尝试创建一系列对象,这些对象都存储在单独的表中,但所有这些表都有一组共同的字段。我希望Hibernate对所有这些表执行UNION,但不要将超类包含为表。
当我用以下方法注释超类时: @MappedSuperclass @Inheritance(策略= InheritanceType.TABLE_PER_CLASS)
... hibernate将针对超类的(n)子类型分别运行(n)查询。
当我删除@MappedSuperclass并将@Entity放在超类上时,Hibernate将执行花哨的UNION查询,但是在UNION中包含超类作为表(没有超类表)。
如何在不使父类成为@Entity的情况下将所有子类(而不是单独的查询)连接到UNION(因为它不是实体,没有表格)?
答案 0 :(得分:4)
我发现将父类标记为“抽象”可以解决问题,Hibernate不再将它包含在UNION中,将 UNION一起包含在所有子类中。