Spring - '字段列表'中的未知列仅在保存/ POST时(但是读取/ GET工作...)

时间:2017-02-01 13:54:47

标签: java mysql spring

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

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

这是我的班级:

@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 (...) )

我真的不知道字段名称是如何匹配的,但我仍然得到例外。 我浏览了堆栈上的所有类似线程(大约10个),但没有解决这个特定问题......

1 个答案:

答案 0 :(得分:0)

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

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