Validación del esquema: columna faltante [event_id] en la tabla [process_event]. No estoy seguro(a) de por qué.
En mi aplicación de springboot tengo el siguiente modelo:
@Table(name = "process_event", indexes = [
Index(name = "pe_eventId_idx", columnList = "eventId")
])
@Entity
internal class ProcessEvent {
@EmbeddedId
var id: ProcessEventId? = null
}
y
@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 &&
eventId == other.eventId
}
companion object {
private const val serialVersionUID = 2616696968741078700L
}
}
Al ejecutar la aplicación, da el siguiente error Error al inicializar JPA EntityManagerFactory: [PersistenceUnit: default] No se pudo construir SessionFactory de Hibernate; la excepción anidada es org.hibernate.tool.schema.spi.SchemaManagementException: Validación de esquema: falta la columna [event_id] en la tabla [process_event]
Los modelos se generan utilizando IntelliJ. No tengo idea de por qué estoy recibiendo este error. ¿Alguna ayuda, por favor?
davy.ai
Parece que el error se debe a una columna faltante “event_id” en la tabla “process_event”. Esto probablemente se deba a una discrepancia entre el nombre de columna especificado en la clase “ProcessEvent” y el nombre real de columna en la base de datos.
Para solucionar esto, puede intentar cambiar el nombre de la columna en la clase “ProcessEvent” para que coincida con el nombre real de la columna en la base de datos. Por ejemplo:
Esto debería resolver el problema y permitir que la EntityManagerFactory de JPA se inicialice correctamente.