To me this is perfectly consistent with how inheritance works in entity hierarchies. Unless a super type is marked with @Entity or @MappedSuperclass, the "attributes" defined on that specific class are not picked up.
Maybe I'm misunderstanding you? On Mon, Dec 9, 2019 at 1:58 PM Gail Badner <gbad...@redhat.com> wrote: > Hi, > > Suppose we have the following: > > public class CompositeKey implements Serializable { > > private Long id1; > > private Long id2; > > public CompositeKey(Long id1, Long id2) { > super(); > this.id1 = id1; > this.id2 = id2; > } > ... > } > public class InheritedKey extends CompositeKey { > > private Long id3; > > public InheritedKey(Long id1, Long id2, Long id3) { > super(id1, id2); > this.id3 = id3; > } > ... > } > > @Entity(name = "IKE") > @IdClass(InheritedKey.class)public class InheritedKeyEntity { > > @Id > private Long id1; > > @Id > private Long id2; > > @Id > private Long id3; > > private String name; > ... > } > > > Currently, Hibernate does not include InheritedKey#id3 in > InheritedKeyEntity's composite key unless InheritedKey is annotated with > @MappedSuperclass. > > I think there are some improvements that can be made. > > 1) As you can see, the entity, itself, has all of the ID fields annotated. > An improvement would be for Hibernate to ensure that all mapped ID > properties have been detected, and throw an exception if this is not the > case. > > 2) A class used as an IdClass does not need any annotations (as opposed to > a class used for an EmbeddedId class, which requires {{@Embeddable}}). > Since the class used as an IdClass does not need to be annotated, it seems > kind of strange that its superclass would need to be annotated with > {{@MappedSuperclass}} in order for its fields/properties to be persistent. > Since the field/property names must match what is annotated in an IdClass, > it is clear that the field/property in a superclass is intended to be an > ID. Perhaps we could make annotating the superclass with > {{@MappedSuperclass}} optional? > > Opinions? > > Thanks, > Gail > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev