crud操作用のspringboot REST APIの開発を開始しました。しかし、POSTリクエストにはいくつか問題があります。マネージ型/バックリファレンス「defaultReference」を処理できません:マネージ型と互換性のないバックリファレンス型(java.util.List)
私は仕事
@Entity
@Table(name="JOB")
public class Job {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="JOB_ID")
private Long jobId;
@Column(name="JOB_CODE")
private String jobCode;
@Column(name="JOB_DESCRIPTION")
private String jobDescription;
@OneToMany(mappedBy="job")
@JsonManagedReference(value="tasks")
private List<JobTask> taskList = new ArrayList<>();
呼び出さエンティティを持っている私は、サイクルの参照を避けるために@JsonManagedReferenceと@JsonBackReference注釈を使用していることに注意してください。
これはJobTask`
@Entity
@Table(name="JOB_TASK")
public class JobTask {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="JOB_TASK_ID")
private Long jobTaskId;
private String taskDescription;
@ManyToOne
@JoinColumn(name="JOB_ID")
@JsonBackReference(value="tasks")
private Job job;`
が、私はしかし、今、私はPOST requests`の例外の下に取得しています JSON`
以下{
"jobCode": "QM",
"jobDescription": "Quaterly Maintenance",
"taskList": [
{
"taskDescription": "Quarter Engine Asess"
},
{
"taskDescription": "Quarter Break Asess"
}
]`
}
でジョブを作成するにはPOSTリクエストをしようとした私の子要素であります
[[シンプルタイプ、クラスcom.abc.entity.Job]]タイプのジャーナルの逆シリアル化を評価することができませんでした:java.lang.IllegalArgumentException:マネージ/バックリファレンス ' defaultReference ':マネージ型(com.abc.entity.JobTask) `
と互換性のないバック参照型(java.util.Listには)私は、このサイトにさがすを行なったし、いくつかの推奨事項が@JsonIdentityInfo の代わりに使用することが分かっ@ JsonManagedReference/@JsonBackReferenceアノテーションしかし、@ JsonIdentityInfoを使用したくないのは、GETリクエストを使用してDataを読み取ったときに完全直列化オブジェクトではなくId値を返すためです。
すべてのヘルプは深く
おかげで、 Keth
こんにちは@Mohamed Elgarnaoui、感謝のために応答します。私はこれと幸運を試みた。ところで、SerializableインターフェイスとJackson De-Serialize機能を実装することの背後にある理論は何ですか? – keth
@kethは編集ポストを参照してください。plz – Mohamed