To fazendo um relacionamento @OneToMany, eu teria que mudar alguma coisa na DAO ou em outro lugar ainda pra funcionar? é um banco que possui várias agencias.
As classes são as seguintes:
[code]package Modelo;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = “dbo.Banco”)
public class Banco {
@Id
private int numeroBanco;
private String nomeBanco;
@OneToMany(targetEntity=Agencia.class ,cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = “banco”)
private List agencia;
public Banco(){
}
public Banco(int numeroBanco, String nomeBanco, List<Agencia> agencia) {
this.numeroBanco = numeroBanco;
this.nomeBanco = nomeBanco;
this.agencia = agencia;
}
public List<Agencia> getAgencia() {
return agencia;
}
public void setAgencia(List<Agencia> agencia) {
this.agencia = agencia;
}
public String getNomeBanco() {
return nomeBanco;
}
public void setNomeBanco(String nomeBanco) {
this.nomeBanco = nomeBanco;
}
public int getNumeroBanco() {
return numeroBanco;
}
public void setNumeroBanco(int numeroBanco) {
this.numeroBanco = numeroBanco;
}
}[/code]
[code]package Modelo;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = “dbo.Agencia”)
public class Agencia {
@Id
private int numeroAgencia;
private String cidade;
private String estado;
@ManyToOne()
private Banco banco;
public Agencia(){
}
public Agencia(int numeroAgencia, String cidade, String estado, Banco banco) {
this.numeroAgencia = numeroAgencia;
this.cidade = cidade;
this.estado = estado;
this.banco = banco;
}
public int getNumeroAgencia() {
return numeroAgencia;
}
public void setNumeroAgencia(int numeroAgencia) {
this.numeroAgencia = numeroAgencia;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public Banco getBanco() {
return banco;
}
public void setBanco(Banco banco) {
this.banco = banco;
}
}[/code]
[code]package Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import Modelo.Banco;
public class HibernateBanco {
private static SessionFactory factory;
static {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Banco.class);
factory = cfg.buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}
[/code]
[code]package Persistencia;
import org.hibernate.Session;
import Modelo.Banco;
public class BancoDAO {
private Session session;
public BancoDAO (Session session) {
this.session = session;
}
public void salva (Banco banco) {
this.session.beginTransaction();
this.session.save(banco);
this.session.getTransaction().commit();
this.session.flush();
this.session.close();
}
public void remove (Banco banco) {
this.session.beginTransaction();
this.session.delete(banco);
this.session.getTransaction().commit();
this.session.flush();
this.session.close();
}
public void atualiza (Banco banco) {
this.session.beginTransaction();
this.session.update(banco);
this.session.getTransaction().commit();
this.session.flush();
this.session.close();
}
}[/code]
[code]package Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import Modelo.Agencia;
public class HibernateAgencia {
private static SessionFactory factory;
static {
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Agencia.class);
factory = cfg.buildSessionFactory();
}
public Session getSession() {
return factory.openSession();
}
}[/code]
[code]package Persistencia;
import org.hibernate.Session;
import Modelo.Agencia;
public class AgenciaDAO {
private Session session;
public AgenciaDAO (Session session) {
this.session = session;
}
public void salva (Agencia agencia) {
this.session.beginTransaction();
this.session.save(agencia);
this.session.getTransaction().commit();
this.session.flush();
this.session.close();
}
public void remove (Agencia agencia) {
this.session.beginTransaction();
this.session.delete(agencia);
this.session.getTransaction().commit();
this.session.flush();
this.session.close();
}
public void atualiza (Agencia agencia) {
this.session.beginTransaction();
this.session.update(agencia);
this.session.getTransaction().commit();
this.session.flush();
this.session.close();
}[/code]
Caso eu tente executar a main ele diz que o @ManyToOne não existe relação.