Эх, давно не брал я в руки шашку. (с) Василий Иванович
Пришлось и мне встать на тропу микросервисов. Поскольку java основной язык программирования, то в качестве платформы был выбран Spring. Начинаю потихоньку копать этот фреймворк.
Досталась мне в наследство базёнка, в которой имена таблиц и полей начинаются с большой буквы. Типа: Notes, NotesIndex и т.п.
Настраиваю spring JPA, все как в примере работы с MySQL. Только в отличии от примера использую готовую таблицу. Проверку опять же:
spring.jpa.hibernate.ddl-auto=validate
Описываю сущности. Причем понимаю, что название таблиц и полей нестандартное, явно указываю имена:
@Data
@Entity
@Table(name = "Notes")
public class Notes {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="NoteIndex")
private int noteIndex;
Запускаю приложение и ловлю ошибку:
nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [notes]
Вот засада! Я ведь явно указал имя таблицы. Долго копался в интернетах и нашел решение: необходимо явно определить стратегию именования, иначе не реагирует оно на мои имена таблиц.
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl