Hibernate relacionamento N pra N

0 respostas
furacao123

Estou fazendo uma aplicação pra aprender mais sobre hibernate mas estou tendo problemas com o relacionamento N pra N

tenho no BD uma tabela Escola(id,nome,cidade,endereco,bairro) e outra Telefone(id,telefone) tenho que fazer um relacionamento N pra N gerando a tabela escola_telefone(id_escola,id_telefone)

Classe EscolaTO
@Id
    @GeneratedValue
    @Column(name="id")
    private Integer id;

    @Column(name="nome",nullable=false, length=100)
    private String nome;

    @Column(name="cidade",nullable=true, length=50)
    private String cidade;

    @Column(name="endereco",nullable=true, length=50)
    private String endereco;

    @Column(name="bairro",nullable=true, length=50)
    private String bairro;

    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name="telefone",
    joinColumns = @JoinColumn(name="id_escola", referencedColumnName="id"),
    inverseJoinColumns = @JoinColumn(name="id_telefone", referencedColumnName="id"))
    private List<TelefoneTO> telefones;
Classe TelefoneTO
@Id
    @GeneratedValue
    @Column(name="id")
    private Integer id;

    @Column(name="descricao")
    private String descricao;

    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name="escola",
    joinColumns = @JoinColumn(name="id_telefone", referencedColumnName="id"),
    inverseJoinColumns = @JoinColumn(name="id_escola", referencedColumnName="id"))
    private List<EscolaTO> Escolas;

Quero gravar uma EscolaTO e fazer o relacionamento com um TelefoneTO

escolaTO.setId(Integer.parseInt(txtCod.getText()));       
        telefoneTO.setDescricao(txtTelefone.getText().replace("(", "").replace(")", "").replace("-", ""));    
        telefoneDAO.gravaTelefone(telefoneTO);
        escolaTO.getTelefoneTO().add(telefoneDAO.getTelefoneByLastId());
       escolaDAO.gravaEscola(escolaTO);
mas quando executo la vem o erro
Exception occurred during event dispatching:
java.lang.NullPointerException
        at GUI.Cadastro.dfrmCadEscola.btnAddActionPerformed(dfrmCadEscola.java:257)
        at GUI.Cadastro.dfrmCadEscola.access$000(dfrmCadEscola.java:16)
vi em varios exemplos em hibernate e é assim que populam a lista mas porque ae gera esse Exception?? ja tentei gerar uma lista e dar um set na EscolaTO mas nao deu tb
listaTelefone.add(telefoneDAO.getTelefoneByLastId());
escolaTO.seTelefoneTO(listaTelefone);
Erro
Exception occurred during event dispatching:
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
Caused by: java.sql.BatchUpdateException: Unknown column 'id_escola' in 'where clause'

alguem pode me ajudar?

Criado 24 de junho de 2009
Respostas 0
Participantes 1