【问题标题】:Table name turned to uppercase表名变成大写
【发布时间】:2019-06-19 09:27:29
【问题描述】:

我正在使用 JPA 和 Hibernate5。

我的 application.properties 有:

spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

还有我的实体:

@Entity
@Table(name = "document", schema = "test")

当我执行findAll时,返回如下错误:

未找到表“文档”; SQL 语句:SELECT * FROM 文档

我无法获得名称属性中描述的实体名称。始终应用“大写”

编辑: 当我尝试排除 HikariCP 依赖项时出现错误。如果我不禁用依赖项,属性工作正常。

【问题讨论】:

    标签: mysql spring hibernate spring-data-jpa


    【解决方案1】:

    使用backticks 定义表名,如下所示:

     @Table(name="`document`")?
    

    这应该在hibernate 中工作

    【讨论】:

    • 未测试,但我想如果您的建议适用于表名,我将在字段名称方面遇到同样的问题,而且我认为编辑我的所有实体以放置 `` 所以现在是没有意义的,我要维护hikariCP依赖
    • @canillas 然后让你的数据库不区分大小写
    • 很遗憾,我们无法更改数据库配置,但感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多