São clientes do mesmo tipo? Eu creio que não, logo, a classe compra possui um Comprador e um Vendedor (Cliente seria, apenas, uma superclasse de ambos).
Não acho que a modelagem esteja correta. Você mesmo disse que tem um Comprador e um Vendedor, se ambos podem ser clientes use composição ou herança e crie um tipo pra cada.
Não entendi? Eu tenho dois clientes, vou usar herança só pra dar um nome diferente e chamar um de comprador e outro de vendedor? não me parece correto… A única questão é que um uma hora poderá ser vendedor e outra hora comprador, mas os dados são os mesmos.
Imagine o mercado livre. A tabela de clientes dele não distingue comprador de vendedor. Todos são potenciais compradores e vendedores. É mais ou menos isso. o que vai mudar é na regra de negócio e não na tabela.
Quando for mapear uma compra, você vai ter um cliente comprador e um cliente vendedor.
Imagine o mercado livre. A tabela de clientes dele não distingue comprador de vendedor. Todos são potenciais compradores e vendedores. É mais ou menos isso. o que vai mudar é na regra de negócio e não na tabela.
Quando for mapear uma compra, você vai ter um cliente comprador e um cliente vendedor.
Consegui explicar melhor?[/quote]
Como o fred disse, está errado.
No mínimo você tem dois atributos diferentes, de mesma classe, comprador e vendedor.
public class Compra{
private Cliente vendedor;
private Cliente comprador;
//Outros atributos
//Getters e setters
}
Se olharem a classe Compra lá tem os dois atributos, minha dúvida foi o mapeamento, peço por favor que leiam minha primeira msg para poderem me ajudar, pois lá está feito da forma que falaram.
Eles estão certos, faz assim:
cria a classe pai chamado pessoa
Pessoa terá classes filhas chamadas Comprador, Vendedor etc
Na tua classe compra terá algo do tipo:
public class Compra {
Pessoa comprador = new Comprador();
Pessoa vendedor = new Vendedor();
}
Lá no teu banco de dados vc pode criar a tabela Pessoa de várias formas recomendo que vc crie apenas uma tabela chamada pessoa lá vc coloca um campo chamado tipo(0 - comprador, 1 - vendedor)
[quote=alexporto90]Um cliente do tipo comprador ter muitas compras.
Um cliente do tipo vendedor tem muitas vendas.
Uma compra terá um vendedor e um cliente.
public class Cliente implements Serializable {
@OneToMany(mappedBy = "comprador")
private List<Compra> compras;
@OneToMany(mappedBy = "vendedor")
private List<Compra> vendas;
}
public class Compra implements Serializable {
@ManyToOne
private Cliente comprador;
@ManyToOne
private Cliente vendedor;
}
[/quote]
Se vai ter só uma entidade mesmo para representar os dois. É isso aí. Faltava trocar por @ManyToOne.
Agora, seguindo assim como é que você vai diferenciar quando é comprador e quando é vendedor? Nunca haverão haver regras diferentes para quando é um ou outro?