GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
ManytoMany no hibernate
Índice dos Fóruns
»
Ferramentas, Frameworks e Utilitários
Autor
Mensagem
25/04/2007 00:19:49
Assunto:
ManytoMany no hibernate
geraldobarboza
JavaTeenager
Membro desde: 22/05/2005 15:24:41
Mensagens: 150
Offline
Estou aprendendo agora a usar o ManytoMany no hibernate,
tenho a classe Fornecedor e a classe Unidade.. e relacao many to many..
como faço a inserção no banco da ligacao entre fornecedor e unidade?
tentei assim:
unidade = new GenericDAO<Unidade>(Unidade.class).pega(unidade.getCnpj()); // pego uma unidade fornecedor.setUnidades(unidade); // ligo a unidade ao fornecedor new GenericDAO<Fornecedor>(Fornecedor.class ).up(fornecedor);
no metodo up ele apenas da um updade...
e esta me dando o seguinte erro:
org.hibernate.HibernateException: Found two representations of same collection: br.com.geraldo.model.Fornecedor.unidades org.hibernate.engine.Collections.processReachableCollection(Collections.java:153) org.hibernate.event.def.FlushVisitor.processCollection(FlushVisitor.java:37) org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101) org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:61) org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55) org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:131) org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196) org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76) org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26) org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) br.com.geraldo.DAO.GenericDAO.up(GenericDAO.java:43) br.com.geraldo.action.FornecedorAction.addUnidade(FornecedorAction.java:37)
O que esta acontecendo? estou inserindo a ligação de maneira incorreta?
estou esquecendo de algo?
[]´s
Geraldo Barboza
unidade.java
import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; /* * Unidade(cnpj, nome, endereço(rua, número, complemento), bairro, cidade, * estado, telefone, referência, data de cadastro, data da ultima atualização) */ @Entity public class Unidade { public void setDataCadastro(Date dataCadastro) { this.dataCadastro = dataCadastro; } public Unidade() { super(); } public Unidade(Long cnjp, String nome, String telefone) { this.cnpj = cnjp; this.nome = nome; this.telefone = telefone; this.dataCadastro = new Date(); } @Id private Long cnpj; private String nome; private String end; private String bairro; private String cidade; private String estado; private String telefone; private String referencia; private Date dataCadastro; private Date dataUpdate; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "Unidade_Fornecedor", joinColumns = @JoinColumn(name = "cnpj_unidade", referencedColumnName = "cnpj"), inverseJoinColumns = @JoinColumn(name = "cnpj_fornecedor", referencedColumnName = "cnpj")) private java.util.Set<Fornecedor> fornecedores; // getters and setters }
fornecedor.java
import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; // Fornecedor(cnpj, nome, endereço(rua, número, // complemento), bairro, cidade, estado, telefone, // e-mail, contato, data de cadastro, // data da ultima atualização) @Entity public class Fornecedor { public void setDataCadastro(Date dataCadastro) { this.dataCadastro = dataCadastro; } public Fornecedor() { super(); } public Fornecedor(Long cnjp, String nome, String telefone, String contato) { this.cnpj = cnjp; this.nome = nome; this.telefone = telefone; this.contato = contato; this.dataCadastro = new Date(); } @Id private Long cnpj; private String nome; private String end; private String bairro; private String cidade; private String estado; private String telefone; private String email; private String contato; private Date dataCadastro; private Date dataUpdate; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "Unidade_Fornecedor", joinColumns = @JoinColumn(name = "cnpj_fornecedor", referencedColumnName = "cnpj"), inverseJoinColumns = @JoinColumn(name = "cnpj_unidade", referencedColumnName = "cnpj")) private java.util.Set<Unidade> unidades; // getters and setters
25/04/2007 17:18:00
Assunto:
ManytoMany no hibernate
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#collections-bidirectional
Former LIPE.
Índice dos Fóruns
»
Ferramentas, Frameworks e Utilitários
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team