Dois relacionamentos distintos entre duas tabelas... Como fazer?

5 respostas
D

Galera,
recebi uma modelagem de banco onde duas tabelas fazem dois tipos de relacionamento entre si.

TABELA Coordenador
idCoord
Pessoa_idPes
.
.
.

TABELA Pessoa
idPes
Coordenador_idCoord
.
.
.

entre essas tabelas existe o relacionamento 1:1 e 1:n, onde 1:1 o id da tabela Coordenador fica na tabela Pessoa e no relacionamento 1:n o id da tabela Pessoa fica na tabela Coordenador.

Eu estava fazendo assim:

Entity Coordenador

@ManyToOne
@JoinColumn(name="Pessoa_idPes")
private Pessoa pesN = new Pessoa();
		
@OneToOne(mappedBy = "coord1")
private Pessoa pes1;

Entity Pessoa

@OneToMany(mappedBy ="pesN")
private List<Coordenador> coordN;
		
@OneToOne
@JoinColumn(name = "Coordenador_idCoord")
private Coordenador coord1 = new Coordenador();

Só que ele me retorna um erro que não consigo vê-lo todo, pois ele repete muitas vezes as seguintes linhas:
.
.
.
at entity.Pessoa.<init>(Pessoa.java:40)
at entity.pessoa.coordenador.Coordenador.<init>(Coordenador.java:40)
.
.
.

5 Respostas

igor_ks

nossa, mas que modelagem é essa?

brincadeiras a parte: Pode isso Arnaldo?

dessa forma vai dar na mesma, sempre que um id da pessoa tiver no colaborador, este mesmo id vai ser do colaborador na pessoa…
é ou um ou outro…

D

igor_ks,
eu tbm não entendi muito bem. Foi me passado a modelagem desse jeito e a explicação foi:

Um Coordenador é uma pessoa (1:1)
Um Coordenador coordena uma lista de pessoas (1:n)

igor_ks

Pessoa - classe pai de

  • Coordenador
  • Subordinado (ou qualquer outro nome)
igor_ks

ai vc faz o mapeamento entre coordenador e subordinado

class Coordenador
@OneToMany
List subordinados

class Subordinado
@ManyToOne
Coordenador coordenador

D

Deixa eu ver se entendi:

Vou ter que falar p/ pessoas que fizeram o banco criar uma nova uma tabela (“subordinados”) e relacioná-la com Coordenador passando para a tabela (“subordinados”) o id da pessoa?

Criado 10 de janeiro de 2012
Ultima resposta 10 de jan. de 2012
Respostas 5
Participantes 2