Я прочитал из другого сообщения о stackoverflow следующее:
Если вы используете JPA 2.1, вы можете использовать аннотацию класса @Table с его индексами атрибутов.
@Table(indexes = { @Index(name = "IDX_MYIDX1", columnList = "id,name,surname") })
Обратите внимание, что, как говорится в документации
These are only used if table generation is in effect. Defaults to no additional indexes.
Я понимаю, что этот подход не изменяет индексы, если таблица уже создана. Есть ли другой способ добавить индексы с помощью Spring (без прямого доступа к базе данных)?

Вы можете выполнить свой собственный sql-скрипт при запуске с помощью.
org.springframework.jdbc.datasource.init.DataSourceInitializer
<bean id = "startupScripts" class = "org.springframework.jdbc.datasource.init.DataSourceInitializer">
<property name = "dataSource"><ref bean = "dataSource"/></property>
<property name = "databasePopulator"><ref bean = "use ResourceDatabasePopulator"/></property>
</bean>