同じフィールドを持つ2つのクラスがあります。ただし、1つはJSON 用で、もう1つはJPAエンティティ用です。 JSON オブジェクト(Student)をJPAエンティティ(StudentEntity)に変換したいと思います。私は JSONクラスをJPAクラスに解析しようとしましたが、許可されませんでした。 (Student)Jsonクラスを(StudentEntity)クラスに変換して、JSONクラスの情報をJPA Entity Classのデータベースに保持する方法を教えてください。クラスをコピードーザーを使用しますが、そのためのいくつかのマッピング・フレームワークを使用することができます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;
}
}
変換メソッドを作成し、getterとsetterを使用してJSONクラスの値を使用して新しいエンティティを作成するのはなぜですか? 明らかに、StudentとStudentEntityを関連付けることはできません。 – Arqan
Converterメソッドは、シンプルで洗練されたソリューションです。コードを読んでいるすべての人が、それが何のためにあるのかを知ることができます。私はあなたが同じタイプのものであることを考えるとフィールドを設定するためにリフレクションを使うことができると思いますが、このような単純なタスクでこれをやっているという考えは私にとってはばかげて聞こえます。 – Arqan