Json post和put方法不适用于';“不为我工作”;错误";:&引用;“不支持的媒体类型”;

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

当我尝试在患者身上张贴并使用该方法,但让该方法对我有效时,我会收到此错误消息

“错误”:“不支持的媒体类型”, “消息”:“内容类型”application/json;charset=UTF-8“不支持”

我猜@JsonBackReference有问题。当我删除@JsonBackReference时,当我尝试get方法时,会出现以下错误消息:解析JSON数据时出错

JSON输入意外结束

代码在这里

班级病人

@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);

 }