, поэтому я работаю над приложением весенней загрузки, и у меня возникает проблема с сохранением данных, когда эти данные ссылаются на другую сущность, у меня есть сущность Room, которая содержит ссылку на сайт сущности при сохранении объекта комнаты, я получаю эту ошибку:Ошибка синтаксического анализа JSON: Невозможно создать экземпляр объекта Site: нет конструктора аргумента строки / метода фабрики для десериализации из значения строки
Я использую метод jpa save () для сохранения моих данных в моей базе данных. Вот код
package ma.munisys.entities;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
@Entity
@Data
@Table(name="room")
public class Room {
@Id
@Column(name="room_code")
private String room_code;
private String room_name;
private String zone;
@ManyToOne
@JoinColumn(name="site_id", updatable=true)
private Site site;
public Room() {
super();
// TODO Auto-generated constructor stub
}
public Room(String Room_code,String Room_name,String zone) {
super();
this.room_code = Room_code;
this.room_name = Room_name;
this.zone = zone;
}
@Override
public String toString() {
return "Room : [ Room code = "+room_code+", Room name = "+room_name+", Zone = "+zone+"]";
}
}
Сущность сайта
package ma.munisys.entities;
import java.util.Date;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter @Setter
@Entity
@Data
@Table(name="site")
public class Site {
@Id @GeneratedValue
private int site_id;
private String site_name;
@ManyToOne
@JoinColumn(name="project_id", updatable=true)
@JsonBackReference
private Projet projet ;
@OneToMany(mappedBy="site", fetch = FetchType.LAZY,cascade = CascadeType.PERSIST)
private Set<Room> room;
public Site() {
super();
// TODO Auto-generated constructor stub
}
public Site(String Site_name,Projet projet1) {
super();
this.site_name = Site_name;
this.projet = projet1;
}
public Site(String Site_name) {
super();
this.site_name = Site_name;
}
@Override
public String toString() {
return "Site : [ id = "+site_id+", Site Name = "+site_name+", Projet = "+projet.getProject_id()+" , "+projet.getProject_name()+"]";
}
}