Json post和put方法不适用于';“不为我工作”;错误";:&引用;“不支持的媒体类型”;
当我尝试在患者身上张贴并使用该方法,但让该方法对我有效时,我会收到此错误消息 “错误”:“不支持的媒体类型”, “消息”:“内容类型”application/json;charset=UTF-8“不支持” 我猜@JsonBackReference有问题。当我删除@JsonBackReference时,当我尝试get方法时,会出现以下错误消息:解析JSON数据时出错 JSON输入意外结束 代码在这里 班级病人Json post和put方法不适用于';“不为我工作”;错误";:&引用;“不支持的媒体类型”;,json,hibernate,spring-mvc,many-to-one,restapi,Json,Hibernate,Spring Mvc,Many To One,Restapi,当我尝试在患者身上张贴并使用该方法,但让该方法对我有效时,我会收到此错误消息 “错误”:“不支持的媒体类型”, “消息”:“内容类型”application/json;charset=UTF-8“不支持” 我猜@JsonBackReference有问题。当我删除@JsonBackReference时,当我尝试get方法时,会出现以下错误消息:解析JSON数据时出错 JSON输入意外结束 代码在这里 班级病人 @Entity public class Patient { @Id @Gen
@Entity
public class Patient {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id_pat;
private Integer cin_pat;
private String fname_pat;
private String lname_pat;
private String sexe_pat;
@Temporal(javax.persistence.TemporalType.DATE)
private Date date_naissance_pat;
private String ville_pat;
private String poid_pat;
private String mail_pat;
private Integer num_tel_pat;
private String adress_pat;
private String remarque_pat;
private String malade_pat;
private String medicament_pat;
@Temporal(javax.persistence.TemporalType.DATE)
private Date der_soin_pat;
private String mot_de_passe_pat;
@OneToMany(cascade = CascadeType.ALL, mappedBy="patient", orphanRemoval = true)
private List<Rdv> Rdvs;
public Patient(){
}
public Patient(Integer id_pat, Integer cin_pat, String fname_pat, String lname_pat, String sexe_pat, Date date_naissance_pat, String ville_pat, String poid_pat, String mail_pat, Integer num_tel_pat, String adress_pat, String remarque_pat, String malade_pat, String medicament_pat, Date der_soin_pat, String mot_de_passe_pat) {
this.id_pat = id_pat;
this.cin_pat = cin_pat;
this.fname_pat = fname_pat;
this.lname_pat = lname_pat;
this.sexe_pat = sexe_pat;
this.date_naissance_pat = date_naissance_pat;
this.ville_pat = ville_pat;
this.poid_pat = poid_pat;
this.mail_pat = mail_pat;
this.num_tel_pat = num_tel_pat;
this.adress_pat = adress_pat;
this.remarque_pat = remarque_pat;
this.malade_pat = malade_pat;
this.medicament_pat = medicament_pat;
this.der_soin_pat = der_soin_pat;
this.mot_de_passe_pat = mot_de_passe_pat;
}
// Getters & Setters
}
患者存储库
public interface PatientRepository extends JpaRepository<Patient, Integer> {
}
公共接口PatientPresository扩展了JpaRepository{
}
rdv存储库
public interface SecretaireRepository extends JpaRepository<Secretaire, Integer>{
public List<Secretaire> findByMedecinId(Integer id);
}
public接口secretairepository扩展了JpaRepository{
公共列表findByMedecinId(整数id);
}
首先。JsonBackReference仅在与另一站点上的@JsonManagedReference结合使用时有效。第二我想知道为什么您的pat_id在GetRequest中是一个整数,而在PutRequest中是一个字符串。第三,如果您正在创建或映射。您不需要表和列定义吗?我正在处理h2数据库。您是否尝试将consumes=MediaType.APPLICATION\u JSON\u VALUE
添加到post和put方法中?在控制器级别使用实体是不好的做法。我建议为此创建DTO。此外,当您调用POST API时,您应该具有以下内容类型:application/json&Accept:application/jsonFirst。JsonBackReference仅在与另一站点上的@JsonManagedReference结合使用时有效。第二我想知道为什么您的pat_id在GetRequest中是一个整数,而在PutRequest中是一个字符串。第三,如果您正在创建或映射。您不需要表和列定义吗?我正在处理h2数据库。您是否尝试将consumes=MediaType.APPLICATION\u JSON\u VALUE
添加到post和put方法中?在控制器级别使用实体是不好的做法。我建议为此创建DTO。此外,当您调用POST API时,您应该具有内容类型:application/json&Accept:application/json
@Entity
public class Rdv {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id_rdv;
@Temporal(javax.persistence.TemporalType.DATE)
private Date date_rdv;
private Time time_rdv;
@JsonBackReference
@ManyToOne( fetch = FetchType.LAZY)
@JoinColumn(name = "id")
private Medecin medecin;
@JsonBackReference
@ManyToOne( fetch = FetchType.LAZY)
@JoinColumn(name = "id_pat")
private Patient patient;
public Rdv() {}
public Rdv(Integer id_rdv, Date date_rdv, Time time_rdv, Integer id, Integer id_pat) {
this.id_rdv = id_rdv;
this.date_rdv = date_rdv;
this.time_rdv = time_rdv;
this.medecin = new Medecin(id, "", "", "", null, "", "", "");
this.patient = new Patient(id_pat, null, "", "", "", null, "", null, "", null, "", "", "", "", null, "");
}
// Getters & Setters
}
public interface PatientRepository extends JpaRepository<Patient, Integer> {
}
public interface SecretaireRepository extends JpaRepository<Secretaire, Integer>{
public List<Secretaire> findByMedecinId(Integer id);
}