Boa Tarde Victor , bem estou comecando a estudar hibernate e fiz um exemplo parecido com o seu, que aki comigo funcionou muito bem :[code]Session session = new HibernateFactory().getSession();
Transaction tx = session.beginTransaction();
Empresa empresa = new Empresa();
LocalEmpresa localEmpresa = new LocalEmpresa();
Faltava citar no hibernate.cfg o mapeamento de Setor.
Me perdoem por este post!
Atenciosamente,
[quote]Pessoal,
Estou com o mesmo problema, mas não estou conseguindo resolver!
Classe Empresa
@Entity
@Table(name = "empresa")
public class Empresa implements java.io.Serializable {
@Id
@SequenceGenerator(name = "ID_Empresa")
@Column(name = "ID_Empresa")
private int id;
@Column(name = "Nome")
private String nome;
@OneToMany(mappedBy = "empresa", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Collection<Setor> setores;[/code]
Classe Setor
[code]@Entity
@Table(name = "setor")
public class Setor implements java.io.Serializable {
@Id
@SequenceGenerator(name = "ID_Setor")
@Column(name = "ID_Setor")
private int id;
@Column(name = "Nome")
private String nome;
@ManyToOne
@JoinColumn(name = "ID_Empresa", nullable = false, updatable = true)
private Empresa empresa;[/code]
Erro:
[code]Exception in thread "main" java.lang.ExceptionInInitializerError
at br.com.quality.util.HibernateUtil.<clinit>(HibernateUtil.java:32)
at br.com.quality.dominio.teste.HibernateTeste.main(HibernateTeste.java:33)
Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: br.com.quality.dominio.Empresa.setores[br.com.quality.dominio.Setor]
at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:979)
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:530)
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:471)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:296)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
at br.com.quality.util.HibernateUtil.<clinit>(HibernateUtil.java:26)
... 1 more
Boa tarde!
Estou tentando inserir dois objetos no banco Empresa e Localidade! Cada empresa tem N localidades (relacionamento 1:n)! O código é mais ou menos esse ae:
[code]
Session session = new HibernateFactory().getSession();
Transaction tx = session.beginTransaction();
Empresa empresa = new Empresa();
empresa.setCnpj(“1”);
session.save(empresa);
LocalEmpresa localEmpresa = new LocalEmpresa();
localEmpresa.setCnpj(empresa.getCnpj());
localEmpresa.setCountry_code(“BR”);
session.save(localEmpresa);
tx.commit();[/code]
Recebo a seguinte exception:
Aparentemente ele nao salva empresa para depois validar a chave estrangeira em localidade!
Alguém já recebeu esse exception?!
Value!
Bom dia!
A declaração das minhas classes “abreviadamente” está assim:
[code]@Entity
public class Empresa { @Id
private String cnpj; @OneToMany (mappedBy = “cnpj”)
private List lista = new ArrayList();
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public List getLista() {
return lista;
}
public void setLista(List lista) {
this.lista = lista;
}
}[/code]
@Entity
public class LocalEmpresa {
@Id @GeneratedValue
private Long idLocalEmpresa;
@ManyToOne (targetEntity=Empresa.class)
@JoinColumn(name="cnpj")
private String cnpj;
//outros campos e getters and setters