首页 > 解决方案 > 列名“saleStatus_id”无效

问题描述

使用迁移我创建了一个名为sale_status的表

public class SaleStatus {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private short id;
    private String description;

make_sale

public class MakeSale {
    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private long id;
    @Column(columnDefinition = "NVARCHAR(MAX) NULL")
    private String detail;
    @Column(name = "application_date")
    private java.time.LocalDateTime applicationDate;
    @OneToOne
    private SaleStatus SaleStatus;

目前,我在表中有sale_status_id但它要求saleStatus_id字段名称都有下划线但是当我尝试插入数据时出现上述错误。我该如何解决这个问题?

错误细节是

[nio-8085-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper   : Invalid column name 'SaleStatus_id'.
2021-08-31 14:03:34.099 ERROR 42928 --- [nio-8085-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet]

标签: javaspring-bootspring-data-jpa

解决方案


创建关系时,JPA 将其映射到标准命名约定。如果您需要以其他方式命名列,您可以随时告诉 JPA 它是如何被调用的。在您的情况下,您可以添加一些信息:

@OneToOne
@JoinColumn(name = "sale_status_id", referencedColumnName = "id")
private SaleStatus SaleStatus;

推荐阅读