[...] Как попросить мою сущность использовать составной первичный ключ, аннотированный как @EmbeddedId, вместо аннотированного поля @Id, унаследованного от MappedSuperClass? Будет ли аннотация @EmbeddedId в моей сущности автоматически переопределять @Id суперкласса?
AFAIK, ты не можешь. Так что не наследуйте от своего суперкласса сущности в этом случае, используйте другой суперкласс сущности.
Я сделал несколько полей (которые используются большинством объектов в моей схеме) как часть моего MappedSuperClass. Теперь, как мне избежать того, чтобы эти поля добавлялись в виде столбцов, если немногим сущностям они не нужны?
Ну, опять же, не наследуйте от суперкласса сущности, который содержит эти поля, и используйте другой суперкласс сущности.