プロジェクトでSpring BootとSpringデータを使用していて、2つのクラスがあります:
@Entity
public class Mission implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
private Long id;
private String departure;
private String arrival;
private Boolean isFreeWayEnabled;
@OneToMany( mappedBy = "mission" )
private List<Station> stations;
// getters and setters
}
そして2番目のクラス:
@Entity
public class Station implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
private Long id;
private String station;
@ManyToOne( fetch = FetchType.LAZY )
@JsonBackReference
private Mission mission;
//getters and setters
}
そしてコントローラー:
@RequestMapping( value = "mission/addMission", method = RequestMethod.POST, consumes = "application/json;charset=UTF-8" )
public Reponse addMission( @RequestBody Mission mission ) throws ServletException {
if ( messages != null ) {
return new Reponse( -1, messages );
}
boolean flag = false;
try {
application.addMision( mission );
application.addStation( mission.getStations(), mission.getId() );
flag = true;
} catch ( Exception e ) {
return new Reponse( 5, Static.getErreursForException( e ) );
}
return new Reponse( 0, flag );
}
問題は、JSONを使用して新しいミッションを追加しようとしているときです。
{"departure": "fff"、 "arrival": "ffff"、 "isFreeWayEnabled":false、stations:{"id":1}
オブジェクトをリストに逆シリアル化しようとしています。ステーションはJSON配列である必要があります
{"departure":"fff","arrival":"ffff","isFreeWayEnabled":false,stations:[{"id":1}, {"id":2}]}