java - Spring - 仅在保存/POST 时出现 'field list' 中的未知列(但读取/GET 有效...)

标签 java mysql spring

我在 Spring 方面遇到了一个无法克服的问题。我向类和 MySQL 数据库添加了许多字段,但这次我不知道发生了什么。

有问题的字段是score。我可以通过 GET 检索资源,并且该字段由 API 返回,但任何修改(例如 POST new )都会抛出 MySQLSyntaxErrorException: Unknown column 'score' in 'field list'

这是我的类(class):

@Entity
@Table(name = "resources")
@Audited
@JsonPropertyOrder({"id"})
public class Resource extends ResourceSupport implements Localizable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long resourceId;

    // ... other fields ...

    private Double score; // <== that's the one!

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    // ... other getters and setters ...
}

在我的数据库中,我有一个这样定义的score字段:

CREATE TABLE `resources`  ( (...) 'score' double NOT NULL (...) )

我真的不明白字段名称如何可能匹配,但我仍然遇到异常。 我浏览了 Stack 上的所有类似线程(大约 10 个),但没有一个解决这个特定问题...

最佳答案

好的,我发现了一个问题。我使用 Hibernate Envers,这是 Spring 中的一种机制(自 2009 年起),允许您存储选定表中的记录历史记录。 它自动为我的 resources 表创建 resources_aud 表。后来我将该列添加到 resource 表中,但没有添加到 resource_aud 表中。

顺便说一句,我推荐 Hibernate Envers。使用起来非常简单。您只需添加 @Audited 标签即可。

关于java - Spring - 仅在保存/POST 时出现 'field list' 中的未知列(但读取/GET 有效...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41981541/

相关文章:

spring - 为什么 Spring 消息转换器仍然在 @Cachable 方法中被调用

java - 使用 Jackson 配置 Spring MVC 和 JSON

mysql - 当您需要一对字段同时匹配时,如何执行类似 IN() 的操作?

mysql - 安装 Mongify 时出错

spring - 如何在 Spring 中使用注释 Autowiring 第 3 方类?

java - 如何使用 Jersey 的内部路由机制来提取类/方法引用?

mysql - 等效于 MySQL 中的 MSSQL IDENTITY 列

java - 交易对象在异常情况下有什么值(value)。?

java - 如何使用 Servlet 将 Java Swing 应用程序连接到服务器?

java - 覆盖系统类的serialVersionUID