【发布时间】:2019-11-28 02:51:10
【问题描述】:
我尝试通过发布 JSON 来插入一些数据,但我不知道为什么,它返回一个错误,提示字段 'id_accessoire' 不能为空(null)。
当我使用 Advanced Rest Client 发送 JSON 时,字段 id_accessoire 不为空。
首先,这是我的实体(文件 Affaire.java),所有字段都在我的数据库中:
@Entity
@Data
@Table(name = "affaire")
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Affaire implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", insertable = false, nullable = false)
private Integer id;
@Column(name = "sn", nullable = false)
private String sn;
@Column(name = "zc")
private String zc;
@Column(name = "certificat")
private String certificat;
@Column(name = "etat", nullable = false)
private Boolean etat;
@Column(name = "finEval", nullable = false)
private Date finEval;
@Column(name = "finRep", nullable = false)
private Date finRep;
@Column(name = "limiteCalendaire", nullable = false)
private String limiteCalendaire;
@Column(name = "date_lancement", nullable = false)
private Date dateLancement;
@Column(name = "accordClient", nullable = false)
private boolean accordClient;
@Column(name="idAccessoire", insertable = false, updatable = false)
private Integer idAccessoire;
@Column(name="idFlux", insertable = false, nullable = false, updatable = false)
private Integer idFlux;
@Column(name="idReparation", insertable = false, nullable = false, updatable = false)
private Integer idReparation;
@Column(name="idVariante", insertable = false, nullable = false, updatable = false)
private Integer idVariante;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="idAccessoire", nullable = false)
@JsonBackReference(value = "affaireAccess")
private Accessoire accessoire;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="idFlux", nullable = false)
@JsonBackReference(value = "affaireFlux")
private Flux flux;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="idReparation", nullable = false)
@JsonBackReference(value = "affaireRep")
private Reparation reparation;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="idVariante", nullable = false)
@JsonBackReference(value = "affaireVariante")
private Variante variante;
@OneToMany(mappedBy = "affaire", cascade=CascadeType.ALL, fetch=FetchType.LAZY)
//@JsonManagedReference(value = "affecterAffaire")
@ToString.Exclude
private List<Affecter> affecters;
}
最后,这是我尝试发布的 JSON,但它不起作用:
{
"sn":"4444AAA",
"zc":null,
"certificat":null,
"etat" : false,
"finEval": "2019-08-25",
"finRep": "2019-09-14",
"limiteCalendaire":"10R28",
"dateLancement":"2019-07-19",
"accordClient" : false,
"idAccessoire" : 1,
"idFlux": 1,
"idReparation": 2,
"idVariante" : 7,
}
错误是字段“id_accessoire_不能为空(null)
【问题讨论】:
标签: json spring spring-boot jpa jackson