@ManyToOne, как сделать Json со ссылкой на существующий foreign key?

Я делаю Spring Boot RESTful приложение У меня две сущности: Посетители:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;
    private String email;
    private String gender;
}

И продукты

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;
    private int qty;
    private int price;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "customer_id", referencedColumnName = "id")
    private Customer customer;
}

Вот так я пытаюсь засунуть Json через контроллер в объект OrderRequest:

@PostMapping("/placeOrder")
    public Product saveOrder(@RequestBody OrderRequest request){
       return productRepository.save(request.getProduct());
    }

Класс OrderRequest:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderRequest {

    private Product product;
}

Классы репозиториев стандартны:

public interface ProductRepository extends JpaRepository<Product, Integer> {}
public interface CustomerRepository extends JpaRepository<Customer, Integer> {}

**Вопрос: Как мне сделать так, чтобы при уже существующей строке в таблице Customer я отправлял Json на сервер, в котором указывал только параметры продуктов и параметр foreign key который являлся бы ссылкой на строку Customer?? ** Спасибо


Ответы (1 шт):

Автор решения: Ruslan P.

Я бы немного иначе сделал бы сам контроллер, где создание продукта - это операция над свойством ресурса Пользователь:

@PostMapping("customers/{id}/orders")
public Product saveOrder(@PathVariable("id") Long customerId, @RequestBody OrderRequest request) {
    // ... 
}
→ Ссылка