Olá pessoal,
Usando: Netbeans 7.2.1, uma aplicação básica em Java com Java Db embedded.
Abaixo do log de execução do projeto, seguem os únicos arquivos deste simples projeto: Cliente.java, hibernate.cfg.xml, HibernateUtil.java e o JavaApplication.java
Problema:
Sucesso na conexão com Java DB Embedded usando create=true. A tabela clientes não existe, mas é criada pelo uso hibernate annotations na classe Cliente.
Na inclusão do registro na tabela Cliente não ocorre nenhum problema.
Contudo, na hora de listar ocorre o erro a seguir:
run:
Incluindo cliente
Out 30, 2012 4:15:25 PM org.hibernate.cfg.annotations.Version <clinit>
INFO: Hibernate Annotations 3.3.1.GA
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.5
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
Out 30, 2012 4:15:25 PM org.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: null
Out 30, 2012 4:15:25 PM org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: com.cliente.Cliente
Out 30, 2012 4:15:25 PM org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity com.cliente.Cliente on table clientes
Out 30, 2012 4:15:25 PM org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
Out 30, 2012 4:15:25 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not for production use!)
Out 30, 2012 4:15:25 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size: 1
Out 30, 2012 4:15:25 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: autocommit mode: false
Out 30, 2012 4:15:25 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: using driver: org.apache.derby.jdbc.EmbeddedDriver at URL: jdbc:derby:teste;create=true
Out 30, 2012 4:15:25 PM org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: connection properties: {user=teste, password=****}
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: RDBMS: Apache Derby, version: 10.8.1.2 - (1095077)
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC driver: Apache Derby Embedded JDBC Driver, version: 10.8.1.2 - (1095077)
Out 30, 2012 4:15:26 PM org.hibernate.dialect.Dialect <init>
INFO: Using dialect: org.hibernate.dialect.DerbyDialect
Out 30, 2012 4:15:26 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Using default transaction strategy (direct JDBC transactions)
Out 30, 2012 4:15:26 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: enabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default schema: app
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL inserts for batching: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.classic.ClassicQueryTranslatorFactory
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: JPA-QL strict compliance: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.NoCacheProvider
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Echoing all SQL to stdout
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
Out 30, 2012 4:15:26 PM org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
Out 30, 2012 4:15:26 PM org.hibernate.impl.SessionFactoryImpl <init>
INFO: building session factory
Out 30, 2012 4:15:26 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: Running hbm2ddl schema update
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: fetching database metadata
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: updating schema
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: table found: .APP.CLIENTES
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: columns: [forma_pagto, filialfaturamento, dt_ultima_compra, data_inativacao, descr_cond_pagto, codigo, limite_credito, nome_completo, emailcomercial, tabelapreco, cgc, fax, uf, status, emailnfe, fone, nome_reduzido, cidade, bairro, saldoematraso, tipo_frete, codigo_vendedor, loja, ativo, cod_cond_pagto, saldoemaberto, segmento, endereco]
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: foreign keys: []
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: indexes: [sql121030145047670]
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: table found: .APP.CLIENTES
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: columns: [forma_pagto, filialfaturamento, dt_ultima_compra, data_inativacao, descr_cond_pagto, codigo, limite_credito, nome_completo, emailcomercial, tabelapreco, cgc, fax, uf, status, emailnfe, fone, nome_reduzido, cidade, bairro, saldoematraso, tipo_frete, codigo_vendedor, loja, ativo, cod_cond_pagto, saldoemaberto, segmento, endereco]
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: foreign keys: []
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: indexes: [sql121030145047670]
Out 30, 2012 4:15:26 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: schema update complete
Out 30, 2012 4:15:26 PM org.hibernate.util.JDBCExceptionReporter logWarnings
WARNING: SQL Warning: 10000, SQLState: 01J01
Out 30, 2012 4:15:26 PM org.hibernate.util.JDBCExceptionReporter logWarnings
WARNING: Database 'teste' not created, connection made to existing database instead.
Hibernate:
insert
into
app.clientes
(ativo, bairro, cidade, cod_cond_pagto, codigo, codigo_vendedor, data_inativacao, descr_cond_pagto, dt_ultima_compra, emailComercial, emailNFE, endereco, fax, filialFaturamento, fone, forma_pagto, limite_credito, loja, nome_completo, nome_reduzido, saldoEmAberto, saldoEmAtraso, segmento, status, tabelaPreco, tipo_frete, uf, cgc)
values
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate:
select
from
Out 30, 2012 4:15:27 PM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 20000, SQLState: 42X01
Out 30, 2012 4:15:27 PM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: Syntax error: Encountered "from" at line 1, column 9.
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:912)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at javaapplication.JavaApplication.main(JavaApplication.java:37)
Caused by: java.sql.SQLSyntaxErrorException: Syntax error: Encountered "from" at line 1, column 9.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 7 more
Caused by: java.sql.SQLException: Syntax error: Encountered "from" at line 1, column 9.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 27 more
Caused by: ERROR 42X01: Syntax error: Encountered "from" at line 1, column 9.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
... 21 more
Java Result: 1[/color]
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.cliente;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
/**
*
* @author vicente
*/
@Entity
@Table(name = "clientes")
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "cgc", nullable = false, length = 14, insertable = true, updatable = false)
@Id
private String cgc;
@Column(length = 6)
private String codigo_vendedor;
@Column(length=6)
private String codigo;
@Column(length=2)
private String loja;
@Column(length=50)
private String nome_completo;
@Column(length=40)
private String nome_reduzido;
@Column(length=20)
private String segmento;
@Column(length=100)
private String endereco;
@Column(length=20)
private String bairro;
@Column(length=60)
private String cidade;
@Column(length=2)
private String uf;
@Column(length=2)
private String filialFaturamento;
@Column(length=3)
private String tabelaPreco;
@Column(length=1)
private String tipo_frete;
@Column(length=3)
private String cod_cond_pagto;
@Column(length=20)
private String descr_cond_pagto;
@Column(length=1)
private String ativo;
@Column(length=1)
private String status;
@Column(length=4)
private String forma_pagto;
@Column(length=8)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dt_ultima_compra;
private float limite_credito;
private float saldoEmAtraso;
private float saldoEmAberto;
@Column(length=60)
private String emailComercial;
@Column(length=60)
private String emailNFE;
@Column(length=15)
private String fone;
@Column(length=15)
private String fax;
@Temporal(javax.persistence.TemporalType.DATE)
private Date data_inativacao;
public Cliente() {
}
public String getCgc() {
return cgc;
}
public void setCgc(String cgc) {
this.cgc = cgc;
}
public String getCodigo_vendedor() {
return codigo_vendedor;
}
public void setCodigo_vendedor(String codigo_vendedor) {
this.codigo_vendedor = codigo_vendedor;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getLoja() {
return loja;
}
public void setLoja(String loja) {
this.loja = loja;
}
public String getNome_completo() {
return nome_completo;
}
public void setNome_completo(String nome_completo) {
this.nome_completo = nome_completo;
}
public String getNome_reduzido() {
return nome_reduzido;
}
public void setNome_reduzido(String nome_reduzido) {
this.nome_reduzido = nome_reduzido;
}
public String getSegmento() {
return segmento;
}
public void setSegmento(String segmento) {
this.segmento = segmento;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
public String getFilialFaturamento() {
return filialFaturamento;
}
public void setFilialFaturamento(String filialFaturamento) {
this.filialFaturamento = filialFaturamento;
}
public String getTabelaPreco() {
return tabelaPreco;
}
public void setTabelaPreco(String tabelaPreco) {
this.tabelaPreco = tabelaPreco;
}
public String getTipo_frete() {
return tipo_frete;
}
public void setTipo_frete(String tipo_frete) {
this.tipo_frete = tipo_frete;
}
public String getCod_cond_pagto() {
return cod_cond_pagto;
}
public void setCod_cond_pagto(String cod_cond_pagto) {
this.cod_cond_pagto = cod_cond_pagto;
}
public String getDescr_cond_pagto() {
return descr_cond_pagto;
}
public void setDescr_cond_pagto(String descr_cond_pagto) {
this.descr_cond_pagto = descr_cond_pagto;
}
public String getAtivo() {
return ativo;
}
public void setAtivo(String ativo) {
this.ativo = ativo;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getForma_pagto() {
return forma_pagto;
}
public void setForma_pagto(String forma_pagto) {
this.forma_pagto = forma_pagto;
}
public Date getDt_ultima_compra() {
return dt_ultima_compra;
}
public void setDt_ultima_compra(Date dt_ultima_compra) {
this.dt_ultima_compra = dt_ultima_compra;
}
public float getLimite_credito() {
return limite_credito;
}
public void setLimite_credito(float limite_credito) {
this.limite_credito = limite_credito;
}
public float getSaldoEmAtraso() {
return saldoEmAtraso;
}
public void setSaldoEmAtraso(float saldoEmAtraso) {
this.saldoEmAtraso = saldoEmAtraso;
}
public float getSaldoEmAberto() {
return saldoEmAberto;
}
public void setSaldoEmAberto(float saldoEmAberto) {
this.saldoEmAberto = saldoEmAberto;
}
public String getEmailComercial() {
return emailComercial;
}
public void setEmailComercial(String emailComercial) {
this.emailComercial = emailComercial;
}
public String getEmailNFE() {
return emailNFE;
}
public void setEmailNFE(String emailNFE) {
this.emailNFE = emailNFE;
}
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
public String getFax() {
return fax;
}
public void setFax(String fax) {
this.fax = fax;
}
public Date getData_inativacao() {
return data_inativacao;
}
public void setData_inativacao(Date data_inativacao) {
this.data_inativacao = data_inativacao;
}
@Override
public int hashCode() {
int hash = 0;
hash += (cgc != null ? cgc.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Cliente)) {
return false;
}
Cliente other = (Cliente) object;
if ((this.cgc == null && other.cgc != null) || (this.cgc != null && !this.cgc.equals(other.cgc))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.cliente.Cliente[ cgc=" + cgc + " ]";
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication;
import com.cliente.Cliente;
import com.cliente.HibernateUtil;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
/**
*
* @author vicente
*/
public class JavaApplication {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Incluindo cliente");
Cliente cliente = new Cliente();
cliente.setCgc("33333333333333");
cliente.setNome_completo("TESTE.");
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = sessao.beginTransaction();
sessao.save(cliente);
transacao.commit();
Query q = sessao.createQuery("from clientes");
List<Cliente> clientes = q.list();
for (Cliente cli : clientes) {
System.out.println(cli.getCgc());
}
sessao.close();
System.out.println("fechou sessao");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="hibernate.connection.url">jdbc:derby:teste;create=true</property>
<property name="hibernate.connection.username">teste</property>
<property name="hibernate.connection.password">teste</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.default_schema">app</property>
<mapping class="com.cliente.Cliente"/>
</session-factory>
</hibernate-configuration>
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.cliente;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
/**
* Hibernate Utility class with a convenient method to get Session Factory
* object.
*
* @author vicente
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
// config file.
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}