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:
Annotations Many to Many
Índice dos Fóruns
»
Persistência: Hibernate, JPA, JDBC e outros
Autor
Mensagem
18/02/2009 10:13:33
Assunto:
Annotations Many to Many
diogo soares
Virtual Machine Man
Membro desde: 17/06/2008 12:46:19
Mensagens: 585
Localização: RS
Offline
Galera nao estou conseguindo fazer um relacionamento manyTomany mapeando com o hibernate, meu codigo esta assim
Relacionamento de Pessoa e Perfil
Na minha classe Pessoa estou fazendo assim:
@ManyToMany(targetEntity=com.corp.bean.Perfil.class,mappedBy="Perfil") @JoinTable( name="Pessoa_has_perfil", joinColumns=@JoinColumn(name="pessoa_id_pessoa", referencedColumnName="id_pessoa"), inverseJoinColumns=@JoinColumn(name="perfil_id_perfil", referencedColumnName="id_perfil") ) private Collection<Perfil> perfil;
O erro que esta dando é esse:
org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.corp.bean.Pessoa.perfil[com.corp.bean.Perfil] at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068) at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600) at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541) at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1136) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324) at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:762) at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:93) at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61) at testes.GeraTabelas.create(GeraTabelas.java:11) at testes.GeraTabelas.main(GeraTabelas.java:18)
O que devo fazer para resolver esse problema?
Sigam-me no Twitter.: @diogoprosoft
Meu Skype.: diogoprosoft
Meu msn.:
diogoprosoft@gmail.com
Meu Gtalk.:
diogoprosoft@gmail.com
Meu Facebook.:
diogoprosoft@gmail.com
18/02/2009 10:48:06
Assunto:
Re:Annotations Many to Many
joca_java
JavaChild
Membro desde: 16/08/2007 14:02:09
Mensagens: 128
Offline
Cara... a classe Perfil tá mapeada?
18/02/2009 10:55:57
Assunto:
Re:Annotations Many to Many
diogo soares
Virtual Machine Man
Membro desde: 17/06/2008 12:46:19
Mensagens: 585
Localização: RS
Offline
Desde ja agradeco a atencao(y)
Vou postar meu codigo para vc dar uma olhada
Perfil.class
@Entity @Table(name = "perfil") public class Perfil implements Serializable{ /** * */ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) @Column(name = "id_perfil", unique=true) private Integer idPerfil; @Column(name = "nmPerfil", unique=true, length=30) private String nmPerfil; gets e sets
Pessoa.class
@Entity @Table(name = "pessoa") public class Pessoa implements Serializable{ /** * */ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) @Column(name = "id_pessoa", unique=true) private Integer idPessoa; @Column(name = "nm_pessoa", unique=true, length=50) private String nmPessoa; @Column(name = "rg_ie", unique=true, length=11) private String rgIe; @Column(name = "cpf_cnpj", unique=true, length=18) private String cpfCnpj; @ManyToMany(fetch=FetchType.LAZY,mappedBy="Perfil",targetEntity=Perfil.class) @JoinTable(name="perfil",joinColumns={@JoinColumn(name="id_perfil")}) public Set<Perfil> perfil = new HashSet<Perfil>(); gets e sets
HibernateFactory.class
public class HibernateFactory { private static SessionFactory factory; static { AnnotationConfiguration cfg = new AnnotationConfiguration(); cfg.addAnnotatedClass(Pessoa.class); cfg.addAnnotatedClass(Perfil.class); factory = cfg.buildSessionFactory(); } public static Session getSession() { return factory.openSession(); } }
public class GeraTabelas { private static void create(AnnotationConfiguration cfg) { new SchemaExport(cfg).create(true, true); } public static void main(String[] args){ AnnotationConfiguration cfg = new AnnotationConfiguration(); try{ create(cfg.addAnnotatedClass(Pessoa.class)); create(cfg.addAnnotatedClass(Perfil.class)); } catch(Exception e){ e.printStackTrace(); } } }
Sigam-me no Twitter.: @diogoprosoft
Meu Skype.: diogoprosoft
Meu msn.:
diogoprosoft@gmail.com
Meu Gtalk.:
diogoprosoft@gmail.com
Meu Facebook.:
diogoprosoft@gmail.com
18/02/2009 11:26:33
Assunto:
Re:Annotations Many to Many
rodrigoallemand
GUJ Ranger
Membro desde: 21/02/2005 20:19:47
Mensagens: 972
Localização: Rio de Janeiro, Recreio!!!
Offline
Faz o básico.... O exemplo abaixo eu tirei de um sistema meu aqui... altere para a sua necessidade...
@Entity @Table(name="CAU_USUARIO") public class Usuario implements Serializable { private static final long serialVersionUID = 4226469181963895540L; @Id @Column(name="ID_USUARIO") private Long id; //... Outros Atributos @ManyToMany(mappedBy="usuarios") private Set<Perfil> perfis; //... acessores } @Entity @Table(name="CAU_PERFIL") public class Perfil implements Serializable { private static final long serialVersionUID = -7100910186111699361L; @Id @Column(name="ID_PERFIL") private Long id; //... Outros Atributos @ManyToMany @JoinTable(name="CAU_USUARIO_PERFIL", joinColumns=@JoinColumn(name="ID_PERFIL"), inverseJoinColumns=@JoinColumn(name="ID_USUARIO")) private Set<Usuario> usuarios; //... acessores }
Rodrigo Allemand
A culpa é minha e eu a coloco em quem eu quizer!.
(Homer Simpson)
http://blog.rodrigoallemand.com.br
18/02/2009 12:57:43
Assunto:
Re:Annotations Many to Many
diogo soares
Virtual Machine Man
Membro desde: 17/06/2008 12:46:19
Mensagens: 585
Localização: RS
Offline
Fiz o que vc falou porem ainda continua dando erro
Pessoa.class
@ManyToMany(mappedBy="pessoa") private Set<Perfil> perfil;
Perfil.class
@ManyToMany @JoinTable(name="pessoa_has_perfil",joinColumns=@JoinColumn(name="id_perfil"),inverseJoinColumns=@JoinColumn(name="id_pessoa")) private Set<Pessoa> pessoa;
Erro
Use of @OneToMany or @ManyToMany targeting an unmapped class: com.corp.bean.Pessoa.perfil[com.corp.bean.Perfil] at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068) at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600) at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541) at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1136) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324) at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:762) at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:93) at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61) at testes.GeraTabelas.create(GeraTabelas.java:11) at testes.GeraTabelas.main(GeraTabelas.java:18)
Sigam-me no Twitter.: @diogoprosoft
Meu Skype.: diogoprosoft
Meu msn.:
diogoprosoft@gmail.com
Meu Gtalk.:
diogoprosoft@gmail.com
Meu Facebook.:
diogoprosoft@gmail.com
Índice dos Fóruns
»
Persistência: Hibernate, JPA, JDBC e outros
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