[RESOLVIDO] ManyToMany - EJB3 - Hibernate

4 respostas
E

Estou usando EJB3 e hibernate, tenho uma relação ManyToMany

O que eu preciso é, quando for inserir um Evento, atualizar a tabela de ralação (“monitor_evento”), mas NÃO inserir novos monitores, o usuário vai escolher monitores já existentes, então devo atualizar apenas a tabela evento e monitor_evento

Já quando for inserir um novo Monitor, quero que seja inserido/atualizado apenas a tabela monitor…

Gostaria de deixa Evento no fetchType.EAGER, pq sempre que fazer uma consulta de Evento eu vou ter de exibir os monitores, o contrário não, monitor com fetchType.LAZY…

Como eu usar a anotation ? Configurar o cascade ? Ou qq outra sugestão…

As classe são…

Evento

@Entity
public class Evento implements Serializable {
    .
    .
    .
    @ManyToMany (mappedBy="eventoList", fetch=FetchType.EAGER)
    private Collection<Monitor> monitorList;
    .
    .
    .

Monitor

@Entity
public class Monitor implements Serializable {
    .
    .
    .
    @ManyToMany (fetch=FetchType.LAZY, cascade=CascadeType.ALL)
    @JoinTable(name="monitor_evento", 
    joinColumns={@JoinColumn(name="idMonitor", 
            referencedColumnName="id")}, inverseJoinColumns={@JoinColumn(name="idEvento", referencedColumnName="id")})
    private Collection<Evento> eventoList;
    .
    .
    .

At.

4 Respostas

E

ninguém ? parece uma coisa tão simples…

fiaux

Referência: http://www.hibernate.org/hib_docs/annotations/reference/en/html/

E

Então, o problema era simples… eu tinha que troca o dono da relação… coloquei o Evento como proprietário e funcionou!

vlw aí!

itakenami

OI Eklam,

Será que vc poderia explicar melhor como resolveu o problema?? Estou na mesma situação e não consigo achar uma solução.

Abraço,
Igor

Criado 17 de abril de 2008
Ultima resposta 23 de abr. de 2008
Respostas 4
Participantes 3