1
resposta

Dúvida Setter de Pedido

Na entidade Oferta, no setPedido(), seria uma boa prática ao adicionar um Pedido também adicionar Oferta ao Pedido diretamente no setter?

Algo assim:

public void setPedido(Pedido pedido) {
        this.pedido = pedido;
        pedido.getOfertas().add(this);
    }

A mesma coisa em Pedido ao adicionar uma Oferta, já pegar a Oferta e adicionar o pedido a ela (mas dai teria que criar um outro método e não usar o add() padrão do List (ou sobrescrever?)).

Venho do PHP e no Doctrine costumava fazer isso, as classes autogeradas pelo Make do Symfony já entregavam esses metódos prontos com setters "bidirecionais".

Até quando isso pode/deve/não deve ser aplicado no Java?

1 resposta

Oi Guilherme!

Sim, para relacionamentos bidirecionais é importante preencher os 2 lados da relação. Eu prefiro que isso seja feito em algum método com um nome mais explicito da operação, ao invés do setter. Por exemplo:

public void adicionarOferta(Oferta oferta) {
    this.ofertas.add(oferta);
    oferta.setPedido(this);
}