У меня есть два класса, которые имеют одинаковые поля. Тем не менее, один для JSON , а другой для объекта JPA. Я хочу преобразовать объект JSON (Student) в объект JPA (StudentEntity). Я попытался разобрать класс JSON в класс JPA, однако это не позволило. Как преобразовать класс (Student) Json в класс (StudentEntity), чтобы информация, которую я имею в классе JSON, могла использоваться для сохранения в базе данных из класса сущностей JPA?Java: преобразовать класс Jackson (JSON) в Entity (JPA) Класс
package com.student.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "Student")
public class StudentEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(nullable = false, updatable = false)
@GeneratedValue
private long studentID;
private String fName;
private String lName;
private Address address;
public long getStudentID() {
return studentID;
}
public void setStudentID(long studentID) {
this.studentID = studentID;
}
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
package com.ejb.objectmapper.entity.student;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties("studentID")
public class Student {
private long studentID;
@JsonProperty
private String fName;
@JsonProperty
private String lName;
private Address address;
public long getStudentID() {
return studentID;
}
public void setStudentID(long studentID) {
this.studentID = studentID;
}
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
Почему бы вам просто не создать метод конвертера и использовать геттеры и сеттеры для создания нового объекта с использованием значений класса JSON? Очевидно, вы не можете просто бросить Student в StudentEntity, потому что они никак не связаны. – Arqan
Конвертер - это простое и элегантное решение, все, кто читает ваш код, знают, для чего он нужен. Думаю, вы могли бы использовать отражение, чтобы задать поля, учитывая, что они одного типа, но идея сделать это для такой простой задачи звучит довольно смешно для меня. – Arqan