これは多くの場所でカバーされていたはずです。しかし、私はそれが単純な方法で覆われている場所を見つけることができません。jsonizeに遅延ロードされたオブジェクトしかフェッチしないようにする方法はありますか?
コントローラで私が人物オブジェクトを返すとき、ジャクソンは大文字と小文字をシリアル化しようとします。私はここにケーステーブルを送る必要はありません。私はperson.setCase(null)を行うことができますが、これを行うためのよりよい方法が必要であると思います。それが取り出されていない場合、ジャクソンにケースをシリアル化しないように指示する方法はありますか?
私が直接あなたの質問にお答えしませんhbopojogen
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "person" )
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@Column(nullable = false )
@JsonManagedReference
public Set<Case> getCase() {
return this.case;
}
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE})
@JoinColumn(name = "PERSON_ID", nullable = true)
@JsonBackReference
public Person getPerson() {
return this.person;
}
public @ResponseBody Person searchPersonByCode(@RequestParam String codeString){
int code = Integer.parseInt(codeString);
Patient person = this.personDao.getByCode(code);
return person;
}
おかげで、
ありがとう、これは私が必要としていたものとまったく同じです。それはあまりにも複雑に見えたので、私はこれを避けていました。しかし、私はそれを試した。それは簡単だった。ありがとうございます – precursor
ええ、何も複雑な、それは単なるオプションの機能を提供するモジュール化された方法です。ブラウザのようなシンプルなプラグイン – StaxMan