首页 > 解决方案 > 如何将 JSON 中的列表对象放入 MySQL

问题描述

我需要MySql使用 spring boot ( Hibernate, Jackson)放置和获取数据

样品JSON

[
    {
        "name": "Product1",
        "colors": [
            {
                "color": [
                    "#dddd33",
                    "#676767"
                ]
            },
            {
                "color": [
                    "#FFdDFF"
                ]
            }
        ]
    }
]

同样JSON我想收到但添加了“id”。我应该怎么做才能实现这一目标?

目的:

@Entity
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JsonProperty("name")
    private String name;

    @JsonProperty("colors")
    @OneToMany(mappedBy = "product_id")
    private Set<Color> colors;
}

@Entity
public class Color {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long product_id;

    @JsonProperty("color")
    @CollectionTable(name = "color", joinColumns = @JoinColumn(name = "color_id"))
    @Column(name = "color")
    @ElementCollection
    @OrderBy
    private List<String> color;
}

这不起作用我得到错误 java.sql.SQLException: Field 'id' doesn't have a default value

标签: javamysqlhibernatespring-bootjackson

解决方案


推荐阅读