Я пытаюсь достичь отношения «многие к одному», когда станции принадлежат регионам.Как я могу добиться этого, используя REST для создания станции, просто передавая идентификатор региона на станции POST json, как показано на рисунке.
{
"name": "New York",
"code": "MGR",
"active": "YES",
"regionid": 1
}
Ниже мой контроллер.
@PostMapping("/station/create/")
public ResponseObject create(@Valid @RequestBody Station station){
ResponseObject responseObject = new ResponseObject();
responseObject.setSuccess(true);
responseObject.setData(stationDao.save(station));
responseObject.setMessage("Station created successfully");
return responseObject;
}
Ниже моймодели.
@Entity
@Table(name = "regions")
@EntityListeners(AuditingEntityListener.class)
public class Region implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonProperty("regionID")
private Long regionID;
@JsonProperty("name")
private String name;
@JsonProperty("active")
@Enumerated(EnumType.STRING)
private YesNo active;
}
@Entity
@Table(name = "stations")
@EntityListeners(AuditingEntityListener.class)
public class Station implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonProperty("stationID")
private Long stationID;
@JsonManagedReference
@ManyToOne
@JsonProperty("regionID")
@JoinColumn(name = "regionid", referencedColumnName = "regionid")
private Region region;
@JsonProperty("name")
private String name;
@JsonProperty("code")
private String code;
@JsonProperty("active")
@Enumerated(EnumType.STRING)
private YesNo active;
}