К сожалению, нет лучшего способа, чем то, что вы делаете сейчас. Чтобы сделать то, что вы описываете, вам придется переопределить метод, учитывая, что ваша аннотация JPA будет нуждаться в информации, специфичной для конкретного класса.
С аннотациями JPA у вас фактически есть два варианта - вы можете аннотировать методы или вы можете аннотировать свойства. В нашем проекте мы стандартизировали аннотирование свойств, а не методов, но это вам тоже не поможет, так как свойства предположительно являются частью конкретного класса. (Если они каким-то образом разделены в суперклассе, вам ДЕЙСТВИТЕЛЬНО нужно будет аннотировать методы и переопределить их).
Трудно дать рекомендацию, не видя вашей схемы, но если у ваших классов сущностей так много общего, что они имеют много свойств в суперклассе - возможно, они просто хранятся в одной таблице, возможно, с дифференцирующим тип столбца?
Или, в качестве альтернативы, если они не почти идентичны, не могли бы вы просто воспроизвести общие свойства в каждом конкретном классе? Возможно, вы заставляете себя больше работать, чем экономить, пытаясь получить общие свойства суперкласса. Поскольку вам нужно будет аннотировать их отдельно в конкретных классах, просто объявите их в конкретных классах. Если вам нужны общие методы, которые взаимодействуют с этими свойствами, ответом может быть отдельный класс Utility для захвата этих функций.
В нашем проекте мы иногда используем общий суперкласс для сущностей, но он собирает некоторые метаданные о сущности - ничего, что могло бы повлиять на логику постоянства. Поэтому в абстрактном классе аннотации JPA не нужны (и не имеют смысла).