@Entity
@Table(name = "table_per_class_base")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class TablePerClassBase {
TablePerClassEmbeddable embeddable;
}
@Embeddable
public class TablePerClassEmbeddable {
@OneToMany
@JoinColumn(name = "embeddableParent")
Set<TablePerClassBase> children;
}
@Entity
@Table(name = "table_per_class_sub_1")
public class TablePerClassSub1 extends TablePerClassBase {}
@Entity
@Table(name = "table_per_class_sub_2")
public class TablePerClassSub2 extends TablePerClassBase {}
Roughly this model fails to persist elements. An assertion in OneToManyPersister#buildTableUpdate seems to be too strict or maybe even wrong. assert tableReference.getTableName().equals( elementType.getIdentifierMapping().getContainingTableExpression() ) I think it should rather be assert elementType.containsTableReference(tableReference.getTableName()) |