#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