Duvida em JPA

3 respostas
batista.gerson

Bom dia a todos. Gostaria da ajuda de vocês começei com jpa agora e me deparei com uma situação que eu não sei exatamente porque acontece. É o seguinte eu tenho uma associação muitos-pra-muitos entre duas entidade e mapeai assim
Guichê

@ManyToMany(targetEntity = Fila.class)
    @JoinTable(name = "fila_guiche", joinColumns =
    @JoinColumn(name = "id_guiche"),
    inverseJoinColumns =
    @JoinColumn(name = "id_fila"))
    private List<Fila> filas;

Serviço

@ManyToMany(targetEntity = Guiche.class)
    @JoinTable(name = "FILA_GUICHE", joinColumns =
    @JoinColumn(name = "ID_FILA"),
    inverseJoinColumns =
    @JoinColumn(name = "ID_GUICHE"))
    private List<Guiche> guiches;

A duvida é a seguinte quando eu altero alguma campo, tipo errei o nome do serviço e vou e altero a associação e apagada na tabela, e assim msm ou tem alguma configuração que possa ser feito pra nao apagar a associação?

3 Respostas

furacao123

Voce pode criar uma tabela auxiliar com chave primaria (ou chave composta) e mais as duas chaves extrangeiras por exemplo GuicheServico com id, id_guiche, id_servico
e nessa tabela voce faz os relacionamentos, e la na guiche e na servico voce tera uma lista de GuicheServico.

Lord

Olá batista. Entaum da uma revisada no seu ORM, pois de um “lado” do relacionamento colocamos como é feito o “vínculo” entre as entidades do outro “lado” apenas referenciamos a outra do relacionamento.Ficaria da seguinte forma:

Guiche

@ManyToMany(targetEntity = Fila.class , cascade = CascadeType.ALL)
    @JoinTable(name = "fila_guiche", 
joinColumns = 
			@JoinColumn(name = "id_guiche"),
inverseJoinColumns = 
			@JoinColumn(name = "id_fila"))
    private List<Fila> filas;

Serviço

@ManyToMany(mappedBy = "filas" , cascade= CascadeType.REFRESH )
    private List<Guiche> guiches;

Agora quanto a sua dúvida, está confusa sua pergunta !!! Bom vamos lá , quando você quer atualizar está associação se recupera o ojeto Guiche e entaum retira o serviço da lista de serviços dentro do objeto adiciona-se o serviço certo e atualiza o objeto Guiche :

Qualquer dúvida posta ae …

batista.gerson

Vlw a todos
Lord vou modificar e testar
qlq coisa eu posto.

Lord so pra melhorar a pergunta e o seguinte se eu atualizar o nome do serviço por exemplo o jpa vai na tabela de associaçao e da um delete na associacao o eu queria saber se isso e normal ou e configurado.

Criado 7 de junho de 2010
Ultima resposta 7 de jun. de 2010
Respostas 3
Participantes 3