Problema com hibernate não faz consulta

Seguinte galera estou fazendo uma aplicação jsf onde eu tenho uma parte java aplication e outra jsf

a parte java aplication está dando erro toda vez que eu digito o código do produto que eu quero que seja exibido:

está é minha classe main:

eu só estou usando a opção 1 aue é para buscar o código.

antes de perguntarem todas as libs inclusive as do jsf então na pasta lib do webinf.

eu subi o web service para testar via soap

e quando eu insiro o código 1 que é o valor que eu populei o meu banco de dados com a tabela ele me volta este erro:

IWAB0135E An unexpected error has occurred. java.net.ConnectException Connection refused: connect

[code]package com.fiap.nac20.main;

import java.io.Serializable;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.Scanner;

import com.fiap.nac20.bo.EstoqueBO;
import com.fiap.nac20.to.ProdutoTO;
import com.fiap.nac20.util.PropertySingleton;

public class TesteConsole implements Serializable {

private static final long serialVersionUID = 1L;

public static void main(String[] args) {


	Scanner entrada = new Scanner(System.in);

	int codProduto = 0;
	int cod = 0;
	
	EstoqueBO estoqueBO = new EstoqueBO();
	
	ProdutoTO produtoTO = new ProdutoTO();


	DateFormat dfmt = DateFormat.getDateInstance(DateFormat.MEDIUM);

	System.out.println(PropertySingleton.getInstance().get("nomeFilial") + " Data: " + dfmt.format(Calendar.getInstance().getTimeInMillis()));
	System.out.println(PropertySingleton.getInstance().get("endereco"));
	System.out.println();
	System.out.println("*************************************************");
	System.out.println();
	
	System.out.println("Escolha uma das opções abaixo:");
	System.out.println();
	System.out.println("1 - Pesquisar Produto");
	System.out.println("2 - Inclusão de Novo Produto");
	System.out.println("3 - Remoção de um produto");;
	System.out.println("4 - Listagem de Produtos");
	System.out.println("0 - Encerrar a Aplicação");
	System.out.println();
	System.out.println();
	System.out.println();
	System.out.println("Digite o Código da Opção Desejada: ");
	
	cod = entrada.nextInt();
	
	System.out.println("*************************************************");
	
	if (cod == 1){
		
		System.out.print("Pesquisar Produto:");
		System.out.println();
		System.out.println();
		System.out.println();			
		System.out.println("Digite o Código do Produto: ");
		codProduto = Integer.parseInt(entrada.next());
		
		System.out.println( codProduto );
		produtoTO = estoqueBO.consultarProduto(codProduto);			
		System.out.println("Descrição do Produto: " + produtoTO.getDescricao());
		
		DecimalFormat df = new DecimalFormat("R$ #,##0.00");
		
		System.out.println("Preco Unitario: " + df.format(produtoTO.getPreco()));
		System.out.println("Quantidade em Estoque: " + produtoTO.getQuantidade());
		System.out.println("Campanha Promocional: " + produtoTO.getCampanhaPromocional());
		System.out.println();
		System.out.println();
		System.out.println("Digite 6 para voltar ao Menu Princípal ou 0 para encerrar a aplicação");
		cod = entrada.nextInt();
		
		for (int i=0 ; i < 100 ; i++) {
			System.out.println();
		}
	
			

	entrada.close();

}

}
[/code]

este é o codigo de erro do console:

[code]FIAP Data: 16/05/2013
Avenida Paulista


Escolha uma das opções abaixo:

1 - Pesquisar Produto
2 - Inclusão de Novo Produto
3 - Remoção de um produto
4 - Listagem de Produtos
0 - Encerrar a Aplicação

Digite o Código da Opção Desejada:
1


Pesquisar Produto:

Digite o Código do Produto:
1
1
Mai 16, 2013 1:10:45 PM org.hibernate.annotations.common.Version
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
Mai 16, 2013 1:10:45 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.9.Final}
Mai 16, 2013 1:10:45 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
Mai 16, 2013 1:10:45 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Mai 16, 2013 1:10:46 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
Mai 16, 2013 1:10:46 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
Mai 16, 2013 1:10:46 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: true
Mai 16, 2013 1:10:46 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [oracle.jdbc.OracleDriver] at URL [jdbc:oracle:thin:@localhost:1521:xe]
Mai 16, 2013 1:10:46 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=Paulo, password=****, autocommit=true, release_mode=auto}
Mai 16, 2013 1:10:47 PM org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
Mai 16, 2013 1:10:47 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory
Mai 16, 2013 1:10:47 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory
INFO: HHH000397: Using ASTQueryTranslatorFactory
Mai 16, 2013 1:10:48 PM org.hibernate.tool.hbm2ddl.SchemaValidator validate
INFO: HHH000229: Running schema validator
Mai 16, 2013 1:10:48 PM org.hibernate.tool.hbm2ddl.SchemaValidator validate
INFO: HHH000102: Fetching database metadata
Mai 16, 2013 1:10:48 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: PAULO.ESTOQUE
Mai 16, 2013 1:10:48 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [preco, codigo_produto, quantidade, campanha_promocional, descricao]
Exception in thread “main” javax.persistence.PersistenceException: [PersistenceUnit: CLIENTE_ORACLE] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.fiap.nac20.dao.EntityManagerFactorySingleton.getInstance(EntityManagerFactorySingleton.java:20)
at com.fiap.nac20.bo.EstoqueBO.consultarProduto(EstoqueBO.java:17)
at com.fiap.nac20.main.TesteConsole.main(TesteConsole.java:65)
Caused by: org.hibernate.HibernateException: Missing column: codProduto in PAULO.ESTOQUE
at org.hibernate.mapping.Table.validateColumns(Table.java:370)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1275)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:506)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1750)
at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
… 7 more
[/code]

este é o meu persistence.xml

<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="CLIENTE_ORACLE"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> <property name="javax.persistence.jdbc.user" value="Paulo"/> <property name="javax.persistence.jdbc.password" value="paulo1"/> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe"/> </properties> </persistence-unit> </persistence>

e está é minha classe de negócio:

[code]import javax.persistence.EntityManager;

import com.fiap.nac20.dao.EntityManagerFactorySingleton;
import com.fiap.nac20.dao.ProdutoDao;
import com.fiap.nac20.impl.ProdutoDaoImpl;
import com.fiap.nac20.to.ProdutoTO;

public class EstoqueBO {

public ProdutoTO consultarProduto(int codProduto) {

	EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();

	ProdutoDao produtoDAO = new ProdutoDaoImpl(em);
	return produtoDAO.consultarProduto(codProduto);

}

public void adicionarProduto(ProdutoTO produtoTO) {

	EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();

	ProdutoDao produtoDAO = new ProdutoDaoImpl(em);
	produtoDAO.adicionarProduto(produtoTO);			

}

public ProdutoTO[] listarProdutos() {
	EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();

	ProdutoDao produtoDAO = new ProdutoDaoImpl(em);
	return produtoDAO.listarProdutos();

}

public void atualizarProduto(ProdutoTO produtoTO) {

	EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();

	ProdutoDao produtoDAO = new ProdutoDaoImpl(em);
	produtoDAO.atualizarProduto(produtoTO);

}

public void removerProduto(ProdutoTO produtoTO) {

	EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();

	ProdutoDao produtoDAO = new ProdutoDaoImpl(em);
	produtoDAO.removerProduto(produtoTO);

}

public String[] buscarTodasDescricoes(String descricao) {

	EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();

	ProdutoDao produtoDAO = new ProdutoDaoImpl(em);
	return produtoDAO.buscarTodasDescricoes(descricao);

}

}
[/code]

Esta linha diz o que?

então mas olha o minha tabela aqui:

https://skydrive.live.com/redir?resid=633FCD10AD31321B!1157&authkey=!AEZ72vVm_osEzvg

e para tirar dúvida aqui está minha classe TO:

[code]@Entity
@Table(name=“ESTOQUE”)
public class ProdutoTO implements Serializable {

private static final long serialVersionUID = 1L;

public ProdutoTO() {

}

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="codProduto", unique=true, nullable=false, precision=22)
private int codigoProduto;

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

@Column(name="quantidade", nullable=false, precision=22)
private int quantidade;

@Column(name="preco", nullable=false, precision=22)
private double preco;

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

public int getCodigoProduto() {
	return codigoProduto;
}

public void setCodigoProduto(int codigoProduto) {
	this.codigoProduto = codigoProduto;
}

public String getDescricao() {
	return descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public int getQuantidade() {
	return quantidade;
}

public void setQuantidade(int quantidade) {
	this.quantidade = quantidade;
}

public double getPreco() {
	return preco;
}

public void setPreco(double preco) {
	this.preco = preco;
}

public String getCampanhaPromocional() {
	return campanhaPromocional;
}

public void setCampanhaPromocional(String campanhaPromocional) {
	this.campanhaPromocional = campanhaPromocional;
}

@Override
public String toString() {
	return "ProdutoTO [codigoProduto=" + codigoProduto + ", descricao="
			+ descricao + ", quantidade=" + quantidade + ", preco=" + preco
			+ ", campanhaPromocional=" + campanhaPromocional + "]";
}[/code]

Então ontem a noite descobri o problema

é o seguinte a anotação de classe estava com o @column com o name com um valor que eu queria e o campo da tabela tinha outro atá ai bl você até onde sei pode por o name que você quiser.

mas não. tive que por no name das anotações o mesmo nome de cada coluna da tabela do banco.

Problema resolvido.

[quote=carmipa]Então ontem a noite descobri o problema

é o seguinte a anotação de classe estava com o @column com o name com um valor que eu queria e o campo da tabela tinha outro atá ai bl você até onde sei pode por o name que você quiser.

mas não. tive que por no name das anotações o mesmo nome de cada coluna da tabela do banco.

Problema resolvido.[/quote]
Sempre tive que colocar o nome adequado da coluna no atributo name da anotação @Column.
Quando se usava XML era obrigatório o preenchimento deste atributo e, caso fosse diferente, realmente não funcionava.