Bom dia Pessoal,
Estou precisando de ajuda, referente a criação de tabela no HSQLDB com o Hibernate, pois criei uma classe que gera o banco, porem a mesma executa perfeitamente, informando que as tabelas foram criadas, mas na hora de executar o sistema nao encontra as tabelas, não sei se tem que que fazer alguma configuração para que ele possa gerar as tabelas corretamente. Abaixo estou informando o codigo e o erro:
Obs. Tecnologias utilizadas- Java(j2se), Hibernate e HSQLDB.
Obs 2. Apos executar a classe gera banco e criado apenas os arquivos, contatos.log, contatos.properties e contatos.script, ou seja, nao esta gerando os arquivos com a extensão .data e .backup.
classe com o codigo para gerar a tabela
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.elton.modelo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.NotEmpty;
/**
*
* @author ecsantana
*/
@Entity
@Table(name = "contatos")
public class Contato{
@Id
@Column(name = "cd_id")
@NotEmpty
private int id;
@Column(name = "cd_nome")
@NotEmpty
private String nome;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
classe que gera as tabelas
package br.com.elton.util;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
*
* @author ecsantana
*/
public class GeraBanco {
public static void main(String[] args) {
Configuration cfg = new AnnotationConfiguration();
cfg.configure();
SchemaExport se = new SchemaExport(cfg);
se.create(true, true);
}
}
arquivo hibernate.cfg.xml
<?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.hsqldb.jdbcDriver</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.url">jdbc:hsqldb:file:/banco/contatos</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">100</property>
<property name="c3p0.max_size">100</property>
<property name="c3p0.max_statements">0</property>
<property name="c3p0.min_size">10</property>
<property name="c3p0.timeout">100</property>
<mapping class="br.com.elton.modelo.Contato"/>
</session-factory>
</hibernate-configuration>
Erro apresentado na hora de executar o projeto:
1:00:47,629 DEBUG JDBCExceptionReporter:69 - could not execute query [select this_.cd_id as cd1_0_0_, this_.cd_nome as cd2_0_0_ from contatos this_]
java.sql.SQLException: Table not found in statement [select this_.cd_id as cd1_0_0_, this_.cd_nome as cd2_0_0_ from contatos this_]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:213)
Exception in thread “AWT-EventQueue-0” org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:415)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.doList(Loader.java:2214)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1538)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.list(Loader.java:2090)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
at org.hibernate.loader.Loader.doList(Loader.java:2211)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at org.hibernate.loader.Loader.list(Loader.java:2090)
at br.com.elton.dao.Dao.listaTudo(Dao.java:42)
at br.com.elton.bean.ContatoBean.listaTodosContatos(ContatoBean.java:72)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
at br.com.elton.view.ContatosView.initTable(ContatosView.java:33)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at br.com.elton.view.ContatosView.initComponents(ContatosView.java:213)
at br.com.elton.view.ContatosView.(ContatosView.java:24)
at br.com.elton.view.ContatosView$2.run(ContatosView.java:284)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.sql.SQLException: Table not found in statement [select this_.cd_id as cd1_0_0_, this_.cd_nome as cd2_0_0_ from contatos this_]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:213)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:415)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1538)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2211)
… 19 more
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at br.com.elton.dao.Dao.listaTudo(Dao.java:42)
at br.com.elton.bean.ContatoBean.listaTodosContatos(ContatoBean.java:72)
at br.com.elton.view.ContatosView.initTable(ContatosView.java:33)
at br.com.elton.view.ContatosView.initComponents(ContatosView.java:213)
at br.com.elton.view.ContatosView.(ContatosView.java:24)
at br.com.elton.view.ContatosView$2.run(ContatosView.java:284)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
11:00:47,629 WARN JDBCExceptionReporter:77 - SQL Error: -22, SQLState: S0002
11:00:47,629 ERROR JDBCExceptionReporter:78 - Table not found in statement [select this_.cd_id as cd1_0_0_, this_.cd_nome as cd2_0_0_ from contatos this_]
grato desde já
Elton C.