Весна - один-ко-многим в Нортвинде MySQL - PullRequest
0 голосов
/ 15 октября 2018

Я хотел бы реализовать отношения один-ко-многим между Заказами и Клиентами, как показано в схеме, приведенной ниже: enter image description here

В своей базе данных я реализовал ту же схему.Я хотел бы установить отношение 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();
}

Дело в том, что не работает.Не могли бы вы дать мне совет?

...