最近、私は新しい仕事(4ヶ月)を開始しましたが、まだ春から学ぶことがたくさんあります。私たちが抱えている問題の1つは、DBからオブジェクトを取得し、JSONを(Repository - > Service - > Controller)にマップすると、多くの不要なデータがもたらされることです - 例えば(小さな例):JSONオブジェクトマッピング - スプリングデータ
我々は部門オブジェクトを持つEmployeeクラスを持っており、それは次のようもたらします:
{
'EmployeeId':1,
'Name':'John',
'Email':'[email protected]'
'Department': {
'DepartmentId':1,
'name':'Development',
'location':'Somewhere',
}
}
クラスの詳細を:
@Entity
@Table(name = "Employees")
@NamedQuery(name = "Employee.findAll", query = "SELECT e FROM Employees e")
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "EmployeeId")
private long EmployeeId;
@Column(name = "Email")
private String email;
@Column(name = "address")
private String address;
@ManyToOne
@JoinColumn(name = "DepartmentId")
@JsonBackReference(value = "department_employee")
private Departament departament;
// Other attributes, setters & getters
}
私が最善である「カスタム」マッパーを構築したい場合練習?それとも私は私が私にこのような何かをもたらしJSON作成することができます何かを実装する方法:私はいくつかの研究を行ってきたと私は、次の例を偶然見つけ
{
'EmployeeId':'1',
'Name':'John',
'Email':'[email protected]'
}
:
をまた、私はので、私は、コントローラ上で、私が欲しいのデータを含めるか、または特定のために必要なことができ HashMapが含まれている一般的なオブジェクトを使用する方法について考えてきたJackson's @JsonView, @JsonFilter and Spring
スクリーン。
私は本当に助けていただきありがとうございます。十分な質問があれば幸いです。
ところで、質問もで投稿されました:https://でcoderanch.com/t/669152/Spring/Spring-Mapping-Objects#3124303 –
部門をシリアル化しない場合は、@ JsonIgnorePropertiesアノテーションを使用できます。 – Azizi
私はその質問で指定しなかった場合、私の謝罪 - いくつかの画面で、私は部門を必要とする、例えば私は従業員を更新する必要がある。しかし、名前、電子メール、および特定のデータだけを表示する必要がある場合、それはより適切な方法です。 @ JsonIgnorePropertiesは、フィールドを完全に無視します。 –