Я хотел бы реализовать отношения один-ко-многим между Заказами и Клиентами, как показано в схеме, приведенной ниже:
В своей базе данных я реализовал ту же схему.Я хотел бы установить отношение OneToMany и, наконец, ответить на / {customerID} GET с помощью JSON следующим образом:
customerID: "test",
companyName: "testCompany",
...
...
orders: [
{ orderID: 123,
...//other keys for orderObj
...
}]
Но я понятия не имею, как этого добиться.Я попробовал так:
// ORDER CLASS
@Entity
@Table(name="Orders")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Order {
@Id
private Integer orderID;
private String customerID;
private Integer employeeID;
private String orderDate;
private String requiredDate;
private String shippedDate;
private Integer shipVia;
private Float freight;
private String shipName;
private String shipAddress;
private String shipCity;
private String shipRegion;
private String shipPostalCode;
private String shipCountry;
@ManyToOne
@JoinColumn(name="customerID", insertable=false, updatable=false)
private Customer customer;
public Customer getCustomer(){
return this.customer;
}
public void setCustomer(Customer customer){
this.customer=customer;
}
И мой класс Customer:
// CUSTOMER
@Entity
@Table(name="Customers")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Customer {
@Id
private String customerID;
private String companyName;
private String contactName;
private String contactTitle;
private String address;
private String city;
private String region;
private String postalCode;
private String country;
private String phone;
private String fax;
@OneToMany(mappedBy = "customerID")
private Set<Order> orders;
public Set<Order> getOrders(){
return orders;
}
public void setOrders(Set<Order> orders) {
this.orders = orders;
}
Тогда в моем контроллере:
//reads one customer
@GetMapping(value = "/{customerId}")
public Customer getCustomer(@PathVariable String customerId) {
return customerRepository.findById(customerId).get();
}
Дело в том, что не работает.Не могли бы вы дать мне совет?