Payment, relacionamento um-para-um

O pedido tem um pagamento. O pagamento está associado com um pedido. (Payment depende do Order), pois para ele existir, precisa ter AO MENOS, 1 PEDIDO.

Além disso, o pedido pode existir sem pagamento (o minimo é zero pedidos).

Na entidade pagamento:

    @OneToOne
    @MapsId
    private Order order;

Na entidade Order:

    @OneToOne(mappedBy = "order", cascade = CascadeType.ALL)
    private Payment payment;

Ao rodarmos a nossa aplicação, no banco H2 veremos:

A table payment criada:

❗A coluna order_id existe, pois quando fizemos o mapeamento de um para um, fizemos a anotação @MapsId. Isso significa que, a chave primária do payment, também será uma chave estrangeira com o MESMO número do pedido correspondente.

Exemplo: Se tiver um pedido de número 5, o payment do pedido número 5, terá como id: 5!

Atualizado