我有两个具有相同字段的类。但是,其中一个用于JSON ,另一个用于JPA实体。我想将JSON 对象(学生)转换为JPA实体(StudentEntity)。我尝试将JSON类 解析到JPA类中,但它不允许。如何将(Student)Json类转换为(StudentEntity)类,以便我可以使用JSON类中的信息从JPA Entity Class中持久化数据库?Java:将Jackson(JSON)类转换成实体(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;
}
}
为什么不创建一个转换器方法并使用getters和setter来使用JSON类中的值创建一个新的实体? 显然,你不能只将学生投给StudentEntity,因为他们没有任何关联。 – Arqan
转换器方法是一个简单而优雅的解决方案,每个人读你的代码都会知道它的用途。我想你可以使用反射来设置字段,因为它们是相同的类型,但为这样一个简单的任务做这件事的想法对我来说听起来很荒谬。 – Arqan