私はスプリングブートでAPIレストを構築します。私は子供の魔法使いの中に親子関係を持っています。Springジャーナルの逆シリアル化は、配列の最初の項目のみを選択します。
デシリアライズでは、配列の最初の項目だけが選択されるという問題があります。他のすべてがうまくいくようです。親と子はデータベースにも存在します。
私はこのような何か送る:
"user": {
"name": "foo",
"childs": [
{
"name": "bar",
....
},
{
"name": "foobar",
....
}
],
....
}
をしかし、この持続ました:この上の任意の手がかり
を?
更新
親エンティティ:
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "id",
scope = User.class)
@Entity(name = "users")
@Table(name = "users")
public class User extends ModelEntity {
Model's fields...
...
@JsonView(value = {DTOViews.PrivateProfile.class, DTOViews.Owner.class})
@JsonManagedReference(value = "User-ProfessionalExperience")
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<ProfessionalExperience> professionalExperiences;
}
子エンティティ:
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "id",
scope = ProfessionalExperience.class)
@Entity
@Table(name = "professional_experiences")
public class ProfessionalExperience extends ModelEntity {
Model's fields...
...
@JsonBackReference(value = "User-ProfessionalExperience")
@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private User user;
}
コントローラー:
@RequestMapping(method = RequestMethod.POST)
public MappingJacksonValue create(@RequestBody @Valid User userToCreate, BindingResult result) {
...
}
は、事前にすべてのいただきありがとうございます。
このプロセスの実際のコードを表示できますか? – craigwor
私は 'user'のクラスと' child'のクラスを参照する必要があります – Salman
@craigworコードで更新しました。君たちありがとう。 –