gostaria que se alguem pudesse me ajudar!!
É o seguinte estou com problemas de mapeamento de foreikng key!
A baixo vou mostrar as classes que estou usando ve se vcs me ajudem por favor!!
ESSA PRIMEIRA CLASSE ABAIXO É A CLASSE ONDE SE ENCONTRA A CHAVE ESTRANGEIRA QUE REFERENCIA UMA OUTRA CLASSE QUE VOU MOSTRAR A SEGUIR, ESSA E A CLASSE QUE TEM TODO O MAPEAMENTO EM ANNOTETIONS!
package br.uninorte.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
public class Cliente {
@Id
@Column
public Long cpf;
@Column(name = "clinome")
public String nome;
@Column(name = "clirendamensal")
public Long rendamensal;
@Column(name = "clifone")
public String fone;
@SuppressWarnings("unused")
@ManyToOne
@JoinColumn(name = "clibaicodigo", nullable=false, updatable=false, insertable=false)
private Bairro codigo;
public Bairro getCodigo() {
return codigo;
}
public void setCodigo(Bairro codigo) {
this.codigo = codigo;
}
public Long getCpf() {
return cpf;
}
public void setCpf(Long cpf) {
this.cpf = cpf;
}
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Long getRendamensal() {
return rendamensal;
}
public void setRendamensal(Long rendamensal) {
this.rendamensal = rendamensal;
}
}
ESSA PROXIMA CLASSE E ONDE ESTA A CHAVE QUE VAI SER REFERENCIADA DA CLASSE ANTERIOR!
package br.uninorte.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name=“bairro”)
public class Bairro {
public Bairro(){
}
@Id
@GeneratedValue
@Column(name = "baicodigo")
public Long codigo;
@Column(name = "bainome")
public String nome;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
ESSA CLASSE E ONDE ESTA O METODO DE INSERIR,REMOVER, PESQUISAR, LISTAR E ALTERAR, EU JA CONSIGO FAZER ESSES METODOS NAS DEMAIS CLASSES QUE NAO TEM CHAVE ESTRANGEIRA, ENTAO LOGO ESSES METODOS ESTAO CERTO!
package br.uninorte.controlador;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.uninorte.conexao.ConexaoBD;
import br.uninorte.model.Cliente;
public class ControladorCliente {
public void alterar(Cliente cliente) {
// TODO Auto-generated method stub
Session session = null;
Transaction tx = null;
try {
session = ConexaoBD.getInstance();
tx = session.beginTransaction();
session.update(cliente);
tx.commit();
} catch (Exception e){
tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
//salvar os clientes
public void inserir(Cliente cliente) {
//o OBJETO acima vem apartir da classe MODEL
// TODO Auto-generated method stub
Session session = null;
Transaction tx = null;
try {
session = ConexaoBD.getInstance();
tx = session.beginTransaction();
session.save(cliente);
tx.commit();
} catch (Exception e){
tx.rollback();
e.printStackTrace();
} finally {
//session.close();
}
}
public List listar() {
// TODO Auto-generated method stub
List result;
Session session = ConexaoBD.getInstance();
Query q = session.createQuery(" from Clientes");
result = q.list();
session.close();
return result;
}
public List listarPorNome(String clinome) {
// TODO Auto-generated method stub
List result = null;
Session session = ConexaoBD.getInstance();
Query q = session.createQuery(" from Cliente where nome like :parametro");
q.setParameter("parametro",clinome);
result = q.list();
//session.close();
return result;
}
public Cliente procurarPorId(Long cpf) {
// TODO Auto-generated method stub
Cliente result = null;
Session session = ConexaoBD.getInstance();
result = (Cliente) session.get(Cliente.class, cpf);
if (result == null) {
System.out.println("não encontrou!!!");
}
// session.close();
return result;
}
public void remover(Cliente cliente) {
// TODO Auto-generated method stub
Session session = null;
Transaction tx = null;
try {
session = ConexaoBD.getInstance();
tx = session.beginTransaction();
session.delete(cliente);
tx.commit();
} catch (Exception e){
tx.rollback();
e.printStackTrace();}
finally {
session.close();
}
}
}
E AGORA A CLASSE QUE FAZ O TESTE SE ESTA TUDO CERTO!
package br.uninorte.aplicacao;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.List;
import br.uninorte.controlador.ControladorBairro;
import br.uninorte.controlador.ControladorCliente;
import br.uninorte.model.Cliente;
public class Apli_Cliente {
/**
* @param args
*/
public static void main(String[] args ) throws IOException {
// TODO Auto-generated method stub
ControladorCliente controladorCliente = new ControladorCliente();
Cliente cliente = new Cliente();
//Cliente cliente;
String s;
BufferedReader dado = new BufferedReader(new InputStreamReader(System.in));;
int op=0;
while (op!=3){
System.out.println(" MENU");
System.out.println("1 - INCLUIR CLIENTE");
System.out.println("2 - LISTAR CLIENTE");
System.out.println("3 - LISTAR POR CPF DO CLIENTE");
System.out.println("4 - SAIR");
System.out.println("Informe sua opção: ");
s = dado.readLine();
op = Integer.parseInt (s);
while ((op<1) || (op>4)){
System.out.println("Opção Inválida. Informe 1 ou 2 ou 3 ou 4.");
s = dado.readLine();
op = Integer.parseInt (s);
}
// incluir (OK)
if (op ==1){
String nome, cpf, rendamensal,fone,codigobairro;
ControladorBairro controladorBairro = new ControladorBairro();
System.out.println("Informe o nome do cliente: ");
nome = dado.readLine();
System.out.println("Informe o cpf do cliente: ");
cpf = dado.readLine();
System.out.println("Informe a Renda Mensal do cliente: ");
rendamensal = dado.readLine();
System.out.println("Informe o telefone do cliente: ");
fone = dado.readLine();
System.out.println("Informe o codigo do bairro onde o cliente mora: ");
codigobairro = dado.readLine();
cliente.setNome(nome);
cliente.setCpf(Long.parseLong(cpf));
cliente.setRendamensal(Long.parseLong(rendamensal));
cliente.setFone(fone);
cliente.setCodigo(controladorBairro.procurarPorId((Long.parseLong(codigobairro))));
try {
controladorCliente.inserir(cliente);
System.out.println("Cliente Cadastrado com Sucesso!!!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Erro ao Cadastrar!!!");
}
}
if (op ==2) {
// listar clientes
String nome;
System.out.println("Informe o nome ou parte do nome que deseja consultar: \n");
nome = dado.readLine();
List lista = controladorCliente.listarPorNome("%"+nome+"%");
Iterator iterator = lista.iterator();
while (iterator.hasNext()) {
Cliente c = (Cliente) iterator.next();
System.out.println("Cliente: " + c.getCpf()+" - " + c.getNome());
}
}
if (op ==3) {
// listar Funcionario por ID
String cpf;
System.out.println("Informe o cpf que deseja consultar: \n");
cpf = dado.readLine();
cliente.setCpf(Long.parseLong(cpf));
controladorCliente.procurarPorId(Long.parseLong(cpf));
System.out.println("Bairro: " + cpf);
System.out.println("Bairro Encontrado com Sucesso!!!");
}
try {
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Erro ao Procurar!!!");
}
}
}
}
POR FAVOR ME AJUDEM URGENTEMENTE!!!