jpa出现异常com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'news0_.xxx_xxx'

理解问题

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'news0_.user_name' in 'field list'

首先先让我们理解一下出错的意思:
Unknown column 'news0_.user_name' in 'field list' = “字段列表”中的未知列“news0_.user_name”

出现问题的原因是找不到user_name列,但是你会发现你自己根本就没有写过这个user_name列,那么你可以去实体类看一下是否使用驼峰命名法

结果一看发现有个列叫userName,出错的地方就是这里,jpa会将没有写注解的列自动识别,会将大写N变成_n

接着就出现了user_name这种报错

解决方法:

解决方法有两种:

随意选择其中一种即可解决

  1. 给出错的位置加上注解,列就是@Column(name = "username"),表就是@Table(name = "username")

    注意:name的值必须是全部小写,否则无效

  2. 对jpa进行配置

    application.yml配置文件:

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

    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
    
posted @ 2020-06-12 18:03  智商倒退  阅读(163)  评论(0)    收藏  举报