Проверка схемы: отсутствует столбец [идентификатор события] в таблице [process_event]. Не знаю, почему

#hibernate #kotlin #spring-data-jpa

Вопрос:

В моем приложении springboot у меня есть следующая модель

 @Table(name = "process_event", indexes = [  Index(name = "pe_eventId_idx", columnList = "eventId") ]) @Entity internal class ProcessEvent {  @EmbeddedId  var id: ProcessEventId? = null }  

и

 @Embeddable internal class ProcessEventId : Serializable {  @Column(name = "processId", nullable = false, length = 100)  var processId: String? = null   @Column(name = "eventId", nullable = false, length = 100)  var eventId: String? = null   override fun hashCode(): Int = Objects.hash(processId, eventId)  override fun equals(other: Any?): Boolean {  if (this === other) return true  if (other == null || Hibernate.getClass(this) != Hibernate.getClass(other)) return false   other as ProcessEventId   return processId == other.processId amp;amp;  eventId == other.eventId  }   companion object {  private const val serialVersionUID = 2616696968741078700L  } }  

Запуск приложения выдает следующую ошибку Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing column [event_id] in table [process_event]

Модели генерируются с использованием intellij . Понятия не имею, почему я получаю эту ошибку. Какая-нибудь помощь, пожалуйста ?

Ответ №1:

Хорошо, это было решено путем добавления стратегии именования

 jpa:  hibernate:  ddl-auto: validate  naming.physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl