Нет, в Hibernate и основной Java нет способа, кроме как наследовать класс от общего суперкласса (@MappedSuperclass
).
Причина, по которой это невозможно, заключается в том, что вам нужен класс с этим полем (java) поэтому hibernate не может изменить стандартное поведение java.
Но с помощью AspectJ вы можете.В некотором роде Spring-Roo добавьте значение id
, которое вы можете сделать в собственном совете AspectJ.
Я имею в виду объявление AspectJ Intertype, которое добавляет поле @Id...private Spring id
к каждому классу, который имеет @Entity
аннотация.
С другой стороны, у меня такое ощущение, что это слишком сильно.Я лично использую шаблон в своей IDE, поэтому мне не нужно писать все вещи.И это хорошо для меня.