【问题标题】:Spring JPaRepository not recognizing ColumnSpring JPaRepository 无法识别列
【发布时间】:2021-12-16 11:04:15
【问题描述】:

我正在研究一个简单的弹簧端点。我当前的db表sql是:

CREATE TABLE develop.usermetrics (
    metricId SERIAL PRIMARY KEY,
    uid varchar(12),
    deptCode varchar(10),
    orgGroup varchar(10),
    orgUnit varchar(10),
    orgCode varchar(10),
    workLocationCode varchar(10),
    campusId varchar(20),
    userRole varchar(50),
    metricDate timestamp
);

我的实体包含:

    @Table(name = "usermetrics")
    @Entity
    public class UserMetricsEntity {

    @Id
    @Column(name = "metricId")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long metricId;

    @Column(name = "uid")
    private String uid;

    @Column(name = "deptCode")
    private String deptCode;

    @Column(name = "orgGroup")
    private String orgGroup;

    @Column(name = "orgUnit")
    private String orgUnit;

    @Column(name = "orgCode")
    private String orgCode;

    @Column(name = "workLocationCode")
    private String workLocationCode;

    @Column(name = "campusId")
    private String campusId;

    @Column(name = "userRole")
    private String userRole;

    @Column(name = "metricDate")
    private LocalDateTime metricDate;

调用存储库的保存方法时出现错误:

UserMetricsEntity{metricId=null, uid='105735781', deptCode='Z05511', orgGroup='F&O', orgUnit='CIO', orgCode='0F', workLocationCode='MPG', campusId='GDLPLANT', userRole='Fullstack Developer', metricDate=2021-11-01T12:45:22.588191}
    2021-11-01 12:45:23.029  WARN 57529 --- [nio-8082-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: 42703
    2021-11-01 12:45:23.029 ERROR 57529 --- [nio-8082-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper   : ERROR: column "campus_id" of relation "usermetrics" does not exist

日志的第一行是实体的 toString。

【问题讨论】:

  • 您确定表创建正确吗?
  • 是的,我在 pgadmin 中运行:INSERT INTO develop.usermetrics (uid,deptCode,orgGroup,orgUnit,orgCode,workLocationCode,campusId,userRole,metricDate) VALUES ('105735781','Z05511',' F&O','CIO','0F','MPG','GDLPLANT','Fullstack Developer','2021-11-01 12:29:54.577118') 添加成功
  • 查看stackoverflow.com/questions/28544541/…stackoverflow.com/questions/25283198/… 的答案 您应该更改命名策略或在注释中使用小写的列名
  • 是的!实际上只是在检查,即使我在创建 sql 的表上使用驼峰式命名,pgadmin 将大写更改为小写。我将实体类的命名约定更改为全小写并且它有效。谢谢!

标签: postgresql spring-boot spring-data-jpa


【解决方案1】:

尽管我在创建 sql 的表上使用驼峰式命名,但 pgadmin 将大写更改为小写。我将实体类的命名约定更改为全小写,并且可以正常工作。

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2021-09-07
    • 1970-01-01
    • 2015-09-25
    • 2019-02-26
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多