Iniciante em Hibernate ERRO!

Configurei meu Hibernate.cfg.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

        <property name="hibernate.connection.driver_class">
            org.postgresql.Driver
        </property>

        <property name="hibernate.connection.url">
            jdbc:postgresql://localhost/javaHibernate
        </property>

        <property name="hibernate.connection.username">
            postgres
        </property>

        <property name="hibernate.connection.password">
            postgres
        </property>

        <property name="hibernate.dialect">
            org.hibernate.dialect.PostgreSQLDialect
        </property>

        <mapping resource="aluno.hbm.xml"/>

</session-factory>

[/code]

Configurei minha tabela

[code]

</class>
[/code]

Quando eu chamo minha classe GravarAluno

[code]public class GravaAluno {

public GravaAluno(){

}

public static void main(String[]args){

    try{

         SessionFactory fabrica = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
         Session sessao = fabrica.openSession();

         Aluno aluno = new Aluno();
         aluno.setAlu_codigo(1);
         aluno.setAlu_nome("Gabriel Cardelli");
         aluno.setAlu_cidade("Rio de Janeiro");
         aluno.setAlu_telefone("2561-2976");
         aluno.setAlu_curso("SI");

         Transaction tx_aluno = sessao.beginTransaction();
         sessao.save(aluno);
         tx_aluno.commit();
         sessao.clear();
         

    }catch(Exception e){
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, e.getMessage());
    }

}

}[/code]

Quando eu compilo essa classe me vem um erro que não to conseguindo achar onde é… alguem pode medar uma ajuda?

ERRO:

18 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.1.GA
36 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
40 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
46 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
134 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml
134 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml
247 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : aluno.hbm.xml
378 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: Aluno -> alunos
401 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
489 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
490 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
490 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
507 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost/javaHibernate
512 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=postgres, password=****}
906 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: PostgreSQL, version: 8.4.0
906 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.4 JDBC4 (build 701)
924 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
931 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
933 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
985 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
986 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
986 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
986 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
988 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
988 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
989 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
990 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
990 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
991 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
992 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
994 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
998 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
999 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
999 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1000 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1000 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1000 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
1001 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1002 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1006 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1008 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1009 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1009 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1082 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1354 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
1490 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42P01
1491 [main] ERROR org.hibernate.util.JDBCExceptionReporter - Entrada em lote 0 insert into alunos (alu_nome, alu_cidade, alu_curso, alu_telefone, alu_codigo) values ('Gabriel Cardelli', 'Rio de Janeiro', 'SI', '2561-2976', '1') foi abortada. Chame getNextException para ver a causa.
1492 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42P01
1493 [main] ERROR org.hibernate.util.JDBCExceptionReporter - ERRO: relação "alunos" não existe
  Posição: 13
1494 [main] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
        at GravaAluno.main(GravaAluno.java:28)
Caused by: java.sql.BatchUpdateException: Entrada em lote 0 insert into alunos (alu_nome, alu_cidade, alu_curso, alu_telefone, alu_codigo) values ('Gabriel Cardelli', 'Rio de Janeiro', 'SI', '2561-2976', '1') foi abortada. Chame getNextException para ver a causa.
        at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2569)
        at org.postgresql.core.v3.QueryExecutorImpl$1.handleError(QueryExecutorImpl.java:459)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1796)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:407)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2708)
        at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
        ... 8 more
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
        at GravaAluno.main(GravaAluno.java:28)
Caused by: java.sql.BatchUpdateException: Entrada em lote 0 insert into alunos (alu_nome, alu_cidade, alu_curso, alu_telefone, alu_codigo) values ('Gabriel Cardelli', 'Rio de Janeiro', 'SI', '2561-2976', '1') foi abortada. Chame getNextException para ver a causa.
        at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2569)
        at org.postgresql.core.v3.QueryExecutorImpl$1.handleError(QueryExecutorImpl.java:459)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1796)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:407)
        at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2708)
        at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
        at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
        ... 8 more

Galera quem puder ajudar agradeço!

PS: Eu tenho um Banco javaHibernate e uma tabela alunos.

Ola Gabriel, lembra de mim ae ? rsrsr :slight_smile:

Entao olha eu nao manjo muito de hibernate ainda, estou comecando a estudar mais acho que sei onde esta o erro.

Veja essas linhas :

           <property name="alu nome"/>   
           <property name="alu cidade"/>   
               <property name="alu curso"/>   
           <property name="alu_telefone"/> 

Voce nao pode colocar espacos nos property names, nem ai e nem nas colunas na tabela do banco , que nem ta ai “alu nome”, “alu cidade”, “alu curso”.

Bem espero que seja isso e tenha ajudado, rsrs.
Flw.

valeu mano!!

No meu arquivo está com os _

Foi erro aqui na hora de exibir isso msm!

Continuo na msm…

Abraço obrg

Vejo que ele gera a Query certinha mais deve está dando um erro de tipos…

Caused by: java.sql.BatchUpdateException: Entrada em lote 0 insert into Aluno (alu_nome, alu_cidade, alu_curso, alu_telefone, alu_codigo) values ('Gabriel', 'Rio', 'Sistemas', '25612976', '2') foi abortada. Chame getNextException para ver a causa.
:x

EDIT_________________

INSTALEI O MYSQL E RODOU DE BOA :cry: porque será que deu merda?

Sua chave primária está mapeada??

Você não tinha o banco instalado?! Sem banco não vai mesmo cara hehe. Acho que você deve ter escrito isso errado.

Você primeiro cria o banco:

mysql -u root create database teste;
Depois só abre uma Session (acho que é, eu uso EntityManager) que, dependendo de como estiver configurado o valor do seu hbm2dll.auto no persistence.xml ele vai criar as tabelas. Posso ter falado caca, mas é a única coisa que me pareceu sensata.

rsrs Essa foi boa :slight_smile: , o kra tinha o banco sim mais tava usando o PostgreSQL nao eh verdade? :slight_smile:

Entao mas como voce fez o teste no mysql e rodou (voce fez o teste diretamente no mysql ou usando Hibernate ?) , estranho, pois o Hibernate gera o sql independente do banco que voce esteja usando.

Se voce fez o teste diretamente no banco digo fazendo uma query no mysql (insert into…) tente trocar o banco na sua aplicacao e em vez de usar PostgreSQL usa Mysql e ve se funciona. Pode estar dando alguma incompaibilidade mesmo.

Flw.

énecessario definir se o id vai ser auto increment

ou se vai ser informado pelo usuario

Eu tinha o postgre que dava erro…
Botei o Mysql e rodou…

Tem algo a ver com os tipos será ?

No mapeamento da sua tabela você deve colocar alunos dentro de aspas simples seguido por aspas duplas para poder usar o postgreSQL.
Assim -> table=’“alunos”’.
flw, espero ter ajudado

Tem fazer o seguinte, coloca isso no lugar do id no mapeamento.

 <id name="alu_codigo" column="alu_codigo" type="integer"/>  
      <generator class="sequence">   
         <param name="sequence">SEQ_ALUNO</param>  
      </generator> 
</id>  

e cria uma sequence no banco com o nome SEQ_ALUNO.

  • Com o postgres.

Nas configurações do Hibernate, qual o dialect que tu selecionou?
Tem isso tb, mestre…