[quote=donny]Pelo que entendi a persistência dos dados irão acontecer em várias faces: 1-Salvar a associação entre ÁREA e CLIENTE. Se o CLIENTE for dono desse relacionamento, na classe CLIENTE vai esse mapeamento:
@ManyToMany
@JoinTable(name="cliente_area",
joinColumns = {@JoinColumn(name="CD_CLIENTE")},
inverseJoinColumns={@JoinColumn(name="CD_AREA")})
private List<Area> listaArea = new ArrayList<Area>();
Se AREA for a dona do relacionamento, então na classe AREA vai o mapeamento:
@ManyToMany
@JoinTable(name="area_cliente",
joinColumns = {@JoinColumn(name="CD_AREA")},
inverseJoinColumns={@JoinColumn(name="CD_CLIENTE")})
private List<Cliente> listaCliente = new ArrayList<Cliente>();
A 2 face e a gravação da OBRA passando os IDs de Cliente e AREA. Na classe AREA vai o seguinte mapemento:
@OneToMany(mappedBy="area")
private List<Obra> listaObras = new ArrayList<Obra>();
E na classe OBRA o mapeamento de AREA:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "CD_AREA")
private Area area;
Espero ter ajudado.[/quote]
Bem, antes de tudo ja agradeço pelo tempo donny…
É quase isso que vc postou, mas eu queria deixar o mapeamento do hibernate semelhante com oque fiz no banco de dados…
ONde:
1-) Uma área pode existir e nao conter clientes.
2-) Um cliente pode existir sem estar em uma área e sem ter uma obra.
3-) Uma obra só pode existir para o cliente que estiver vinculado com uma ou mais áreas.
Então, acredito que o Dono da obra, seja o relacionamento de AREA com CLIENTE…Logo o código desse relacionamento vai na tabela obra para identificá-la…
mas, como fazer isso no Hibernate ?