架构验证:表 [process_event] 中缺少列 [event_id]。不知道为啥

Posted

技术标签:

【中文标题】架构验证:表 [process_event] 中缺少列 [event_id]。不知道为啥【英文标题】:Schema-validation: missing column [event_id] in table [process_event]. Not sure why架构验证:表 [process_event] 中缺少列 [event_id]。不知道为什么 【发布时间】:2022-01-02 05:34:37 【问题描述】:

在我的 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 &&
                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

【讨论】:

以上是关于架构验证:表 [process_event] 中缺少列 [event_id]。不知道为啥的主要内容,如果未能解决你的问题,请参考以下文章

使用 Typescript 在 Mongoose 中缺少子文档方法

使用 Typescript 在 Mongoose 中缺少子文档方法

Unity - 项目面板中缺少子元素扩展按钮的预制件

FLOOR 数据库中缺少部分“Appdatabase.g.dart”颤动

Rails 3.1.10 中脚手架生成的视图规范中缺少部分错误

鸿业使用中缺ADO组件