Problemas com Hibernate + HSQLSB[RESOLVIDO]

3 respostas
romarcio

Galera, estou pela 1ª vez tentando utilizar o HSQLDB, preciso usar para uma aplicação standalone.

Porém estou tendo problemas quando tento inserir registros.

INFO: updating schema
06/04/2010 17:10:57 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: table not found: CONTATOS
06/04/2010 17:10:57 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: table not found: USUARIOS
06/04/2010 17:10:57 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: table not found: CONTATOS
06/04/2010 17:10:57 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: table not found: USUARIOS
06/04/2010 17:10:57 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: schema update complete
Hibernate: 
    insert 
    into
        USUARIOS
        (ID, USER, PASS) 
    values
        (null, ?, ?)
Hibernate: 
    call identity()
Hibernate: 
    select
        this_.ID as ID0_0_,
        this_.USER as USER0_0_,
        this_.PASS as PASS0_0_ 
    from
        USUARIOS this_ 
    where
        this_.USER=? 
        and this_.PASS=?

ID: 1
User: teste1.2
Pass: teste1.2

Conforme o log, eu executo um insert na tabela Usuarios e depois listo os dados do insert. A principio pare que foram inseridos, pq faço uma consulta através do user e do pass e me retorna os dados.

Mas na verdade, quando tendo inserir outro registro, ele insere novamente no Id = 1, e se faço um select na tabela, logo depois de terminar o insert, os dados não aparecem lá.

<?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>

    <!--configuracoes de conexao com banco-->
    <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
    <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
    <property name="hibernate.connection.url">jdbc:hsqldb:file:/dbHsqldb/jmsMsn;SHUTDOWN=true</property>
    <property name="hibernate.connection.username">SA</property>
    <property name="hibernate.connection.password"/>

    <!--configura se mostra sql durante execucao na Ide-->
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.format_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">update</property>

    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>

    <!--configuracao de cahce-->
    <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

    <!--mapeamento das classes do hibernate para persistencia de dados-->
    <mapping resource="br/mb/model/Usuario.hbm.xml"/>
    <mapping resource="br/mb/model/Contato.hbm.xml"/>

  </session-factory>
</hibernate-configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="br.mb.model" auto-import="false">

  <class name="Usuario" table="USUARIOS">

    <id name="id" column="ID" type="long" unsaved-value="null">
      <generator class="native"/>
    </id>

    <property name="user" column="USER" type="string" length="55" not-null="true"/>

    <property name="pass" column="PASS" type="string" length="8" not-null="true"/>

  </class>

</hibernate-mapping>

Se prestarmos atenção no inicio do log que postei, ele tem essa informação = INFO: table not found: USUARIOS.

Alguém já trabalhou com hibernate e hsqldb no modo standalone e se sim, passou por esses problemas ?

3 Respostas

R

Você está passando SHUTDOWN na URL de conexão, isso só deve ser usado quando você for encerrar sua aplicação.

romarcio

Testei com e sem o SHUTDOWN e das 2 maneiras da o mesmo problema.

romarcio

Resolvi criando o banco pelo próprio Hibernate.

Criado 6 de abril de 2010
Ultima resposta 1 de set. de 2010
Respostas 3
Participantes 2