Hibernate HSQLBD - Não Salva Objeto e não da Erro

7 respostas
T

[color=black]Pessoal, estou com um problema muito estranho.

Criei uma base de dados no HSQLDB.

Criei um projeto no NetBeans 6.9.1., add os jars do Hibernate assim como o do HSQLDB. Inseri alguns registros no banco(usando o proprio Manager do HSQLDB), testei um select na aplicação, Hibernate retornou o objeto normalmente. Daí quando tentei inserir um Objeto pela aplicação o Hibernate mostrou:

[/color]

run:

141 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final

157 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.1.Final

157 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found

157 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist

172 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling

313 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: testandohibernate.Users

375 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity testandohibernate.Users on table PUBLIC.USERS

438 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring

438 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.

453 [main] INFO org.hibernate.connection.ConnectionProviderFactory - Initializing connection provider: org.hibernate.connection.C3P0ConnectionProvider

453 [main] INFO org.hibernate.connection.C3P0ConnectionProvider - C3P0 using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:file:D:\DataBaseProjects\TesteHibernate

453 [main] INFO org.hibernate.connection.C3P0ConnectionProvider - Connection properties: {user=SA}

453 [main] INFO org.hibernate.connection.C3P0ConnectionProvider - autocommit mode: false

log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).

log4j:WARN Please initialize the log4j system properly.

1328 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->

name : HSQL Database Engine

version : 1.8.1

major : 1

minor : 8

1328 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->

name : HSQL Database Engine Driver

version : 1.8.1

major : 1

minor : 8

1360 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.HSQLDialect

1375 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4

1375 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)

1375 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15

1375 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled

1375 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory

1391 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}

1391 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled

1391 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled

1422 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_materialized_blob] overrides previous : org.hibernate.type.WrappedMaterializedBlobType@ac0a3f

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [blob] overrides previous : org.hibernate.type.BlobType@d4ae71

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Blob] overrides previous : org.hibernate.type.BlobType@d4ae71

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [characters_clob] overrides previous : org.hibernate.type.PrimitiveCharacterArrayClobType@1088c87

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@4201f5

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_characters_clob] overrides previous : org.hibernate.type.CharacterArrayClobType@18e8a51

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_clob] overrides previous : org.hibernate.type.MaterializedClobType@11ae542

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [clob] overrides previous : org.hibernate.type.ClobType@c152ac

1438 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Clob] overrides previous : org.hibernate.type.ClobType@c152ac

1703 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured

Hibernate:

insert

into

PUBLIC.USERS

(nome, id)

values

(?, ?)

1797 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing

[color=black]Só que quando vou na base verificar o registro não está la.

Classe User:[/color]

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package testandohibernate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 *
 * @author Thiago
 */
@Entity//para dizer que é uma entidade POJO
@Table(name="PUBLIC.USERS")
public class Users implements java.io.Serializable{
    @Id
    private Integer id;
    @Column
    private String nome;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Users other = (Users) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 71 * hash + (this.id != null ? this.id.hashCode() : 0);
        return hash;
    }

    @Override
    public String toString() {
        return "Users{" + "nome=" + nome + '}';
    }
}

[color=black]Classe Main:[/color]

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package testandohibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author Thiago
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        SessionFactory sessionFactory = new AnnotationConfiguration()
                .setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
                .setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver")
                .setProperty("hibernate.connection.url", "jdbc:hsqldb:file:D:\\DataBaseProjects\\TesteHibernate")
                .setProperty("hibernate.connection.username", "SA")
                .setProperty("hibernate.password", "")
                .setProperty("hibernate.show_sql", "true")
                .setProperty("hibernate.format_sql", "true")
                .setProperty("hibernate.c3p0.acquire_increment", "1")
                .setProperty("hibernate.c3p0.idle_test_period", "100")
                .setProperty("hibernate.c3p0.max_size", "10")
                .setProperty("hibernate.c3p0.max_statements", "0")
                .setProperty("hibernate.c3p0.min_size", "5")
                .setProperty("hibernate.c3p0.timeout", "100")
                .addAnnotatedClass(Users.class)
                .buildSessionFactory();

        Session session = sessionFactory.openSession();
        session.beginTransaction();

        //----------INICIO

//        Users user = (Users) session.get(Users.class, 3);
//        System.out.println(user);

        Users user = new Users();
        user.setId(3);
        user.setNome("Teste");

        session.save(user);

        //----------FIM

        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
    }

}

Alguem pode ajudar?! Oo

Lembrando que se eu inserir pelo proprio banco e pedir um select pelo Hibernate ele mostra normal o Objeto agora se eu inserir pelo Hibernate ele mostra que foi inserido mas quando dou um select mostra Null e eu estou dando session.getTransaction().commit();

Estranho neh?!

7 Respostas

T

Só para notificar, troquei o banco. De HSQLDB para Derby, mesma confs de tabelas, e lá funcionou normal.

Seria algum problema com o HSQLDB?

Oo

LPJava

tente usar o saveOrUpdate com o HSQLBD e ver se a persistencia vai acontecer.

abracos,

T

[color=black]Cara,

Não funcionou não, e ve o que eu percebi tbm.

No main eu crio e seto um objeto, mando pra gravar no banco, e logo depois do comando de gravar dou um select para o mesmo objeto e ele me retorna o objeto, só que o objeto não foi gravado. Muito estranho. (Comandos de Criar Objeto Salvar e Recuperar do banco: linhas 67 a 76)[/color]

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package testandohibernate;

import java.util.Date;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author Thiago
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        SessionFactory sessionFactory = new AnnotationConfiguration()
                .setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
                .setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver")
                .setProperty("hibernate.connection.url", "jdbc:hsqldb:file:D:\\DataBaseProjects\\TesteHibernate")
                .setProperty("hibernate.connection.username", "SA")
                .setProperty("hibernate.connection.password", "")
                .setProperty("hibernate.show_sql", "false")
                .setProperty("hibernate.format_sql", "true")
//                .setProperty("hibernate.c3p0.acquire_increment", "1")
//                .setProperty("hibernate.c3p0.idle_test_period", "100")
//                .setProperty("hibernate.c3p0.max_size", "10")
//                .setProperty("hibernate.c3p0.max_statements", "0")
//                .setProperty("hibernate.c3p0.min_size", "5")
//                .setProperty("hibernate.c3p0.timeout", "100")
                .addAnnotatedClass(User.class)
                .buildSessionFactory();

//        SessionFactory sessionFactory = new AnnotationConfiguration()
//                .setProperty("hibernate.dialect", "org.hibernate.dialect.DerbyDialect")
//                .setProperty("hibernate.connection.driver_class", "org.apache.derby.jdbc.ClientDriver")
//                .setProperty("hibernate.connection.url", "jdbc:derby://localhost:1527/TesteHibernate")
//                .setProperty("hibernate.connection.username", "test")
//                .setProperty("hibernate.connection.password", "test")
//                .setProperty("hibernate.show_sql", "false")
//                .setProperty("hibernate.format_sql", "true")
//                .setProperty("hibernate.c3p0.acquire_increment", "1")
//                .setProperty("hibernate.c3p0.idle_test_period", "100")
//                .setProperty("hibernate.c3p0.max_size", "10")
//                .setProperty("hibernate.c3p0.max_statements", "0")
//                .setProperty("hibernate.c3p0.min_size", "5")
//                .setProperty("hibernate.c3p0.timeout", "100")
//                .addAnnotatedClass(User.class)
//                .addAnnotatedClass(Product.class)
//                .addAnnotatedClass(Invoice.class)
//                .addAnnotatedClass(InvoiceItem.class)
//                .buildSessionFactory();

        Session session = sessionFactory.openSession();
        session.beginTransaction();

        //----------INICIO

        User u = new User();
        u.setId(3);
        u.setNome("Maria");

        session.saveOrUpdate(u);

        User a = (User) session.get(User.class, 3);
        System.out.println(a.getNome());
        
        //----------FIM

        session.getTransaction().commit();
        session.close();
        sessionFactory.close();

    }

}

Mandando rodar essa classe ele me retorna:

run:

141 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final

156 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.1.Final

156 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found

156 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist

156 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling

344 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: testandohibernate.User

453 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity testandohibernate.User on table PUBLIC.USERS

563 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring

578 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.

594 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)

594 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20

594 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false

610 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:file:D:\DataBaseProjects\TesteHibernate

610 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=SA, password=****}

1110 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->

name : HSQL Database Engine

version : 1.8.1

major : 1

minor : 8

1110 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->

name : HSQL Database Engine Driver

version : 1.8.1

major : 1

minor : 8

1141 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.HSQLDialect

1141 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4

1156 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)

1156 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15

1156 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory

1156 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}

1156 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled

1156 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled

1172 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled

1203 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [characters_clob] overrides previous : org.hibernate.type.PrimitiveCharacterArrayClobType@e6f7d2

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_characters_clob] overrides previous : org.hibernate.type.CharacterArrayClobType@19836ed

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_materialized_blob] overrides previous : org.hibernate.type.WrappedMaterializedBlobType@3e0ebb

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [clob] overrides previous : org.hibernate.type.ClobType@39443f

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Clob] overrides previous : org.hibernate.type.ClobType@39443f

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@1afae45

1203 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_clob] overrides previous : org.hibernate.type.MaterializedClobType@da4b71

1219 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [blob] overrides previous : org.hibernate.type.BlobType@18f1d7e

1219 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Blob] overrides previous : org.hibernate.type.BlobType@18f1d7e

1610 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured

[color=red]Maria[/color]<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Retorno do nome do Objeto

1719 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing

1719 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:hsqldb:file:D:\DataBaseProjects\TesteHibernate

[color=red]Logo depois se eu fizer: abaixo a mesma classe só comendando as linha 67 a 72[/color]

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package testandohibernate;

import java.util.Date;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author Thiago
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        SessionFactory sessionFactory = new AnnotationConfiguration()
                .setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
                .setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver")
                .setProperty("hibernate.connection.url", "jdbc:hsqldb:file:D:\\DataBaseProjects\\TesteHibernate")
                .setProperty("hibernate.connection.username", "SA")
                .setProperty("hibernate.connection.password", "")
                .setProperty("hibernate.show_sql", "false")
                .setProperty("hibernate.format_sql", "true")
//                .setProperty("hibernate.c3p0.acquire_increment", "1")
//                .setProperty("hibernate.c3p0.idle_test_period", "100")
//                .setProperty("hibernate.c3p0.max_size", "10")
//                .setProperty("hibernate.c3p0.max_statements", "0")
//                .setProperty("hibernate.c3p0.min_size", "5")
//                .setProperty("hibernate.c3p0.timeout", "100")
                .addAnnotatedClass(User.class)
                .buildSessionFactory();

//        SessionFactory sessionFactory = new AnnotationConfiguration()
//                .setProperty("hibernate.dialect", "org.hibernate.dialect.DerbyDialect")
//                .setProperty("hibernate.connection.driver_class", "org.apache.derby.jdbc.ClientDriver")
//                .setProperty("hibernate.connection.url", "jdbc:derby://localhost:1527/TesteHibernate")
//                .setProperty("hibernate.connection.username", "test")
//                .setProperty("hibernate.connection.password", "test")
//                .setProperty("hibernate.show_sql", "false")
//                .setProperty("hibernate.format_sql", "true")
//                .setProperty("hibernate.c3p0.acquire_increment", "1")
//                .setProperty("hibernate.c3p0.idle_test_period", "100")
//                .setProperty("hibernate.c3p0.max_size", "10")
//                .setProperty("hibernate.c3p0.max_statements", "0")
//                .setProperty("hibernate.c3p0.min_size", "5")
//                .setProperty("hibernate.c3p0.timeout", "100")
//                .addAnnotatedClass(User.class)
//                .addAnnotatedClass(Product.class)
//                .addAnnotatedClass(Invoice.class)
//                .addAnnotatedClass(InvoiceItem.class)
//                .buildSessionFactory();

        Session session = sessionFactory.openSession();
        session.beginTransaction();

        //----------INICIO

//        User u = new User();
//        u.setId(3);
//        u.setNome("Maria");
//
//        session.saveOrUpdate(u);

        User a = (User) session.get(User.class, 3);
        System.out.println(a.getNome());
        
        //----------FIM

        session.getTransaction().commit();
        session.close();
        sessionFactory.close();

    }

}

[color=red]Erro de nullPoint[/color]

run:

141 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final

156 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.1.Final

156 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found

172 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist

172 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling

422 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: testandohibernate.User

500 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity testandohibernate.User on table PUBLIC.USERS

578 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring

594 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.

594 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)

594 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20

594 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false

609 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:file:D:\DataBaseProjects\TesteHibernate

609 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=SA, password=****}

1078 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->

name : HSQL Database Engine

version : 1.8.1

major : 1

minor : 8

1078 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->

name : HSQL Database Engine Driver

version : 1.8.1

major : 1

minor : 8

1094 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.HSQLDialect

1109 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4

1109 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)

1125 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15

1125 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled

1125 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory

1141 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}

1141 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled

1141 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled

1172 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [characters_clob] overrides previous : org.hibernate.type.PrimitiveCharacterArrayClobType@e6f7d2

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_characters_clob] overrides previous : org.hibernate.type.CharacterArrayClobType@19836ed

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_materialized_blob] overrides previous : org.hibernate.type.WrappedMaterializedBlobType@3e0ebb

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [clob] overrides previous : org.hibernate.type.ClobType@39443f

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Clob] overrides previous : org.hibernate.type.ClobType@39443f

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@1afae45

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_clob] overrides previous : org.hibernate.type.MaterializedClobType@da4b71

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [blob] overrides previous : org.hibernate.type.BlobType@18f1d7e

1188 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Blob] overrides previous : org.hibernate.type.BlobType@18f1d7e

1563 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured

Exception in thread main java.lang.NullPointerException

at testandohibernate.Main.main(Main.java:75)

Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 3 segundos)

[color=black]O que vocês acham?[/color]

LPJava

enquanto vc nao comita o objeto está na transacao e vc pode fazer com ele o que vc quiser.

T

Humm… mas e a questão de não salvar no HSQLDB?

LPJava

se nao está salvando no banco veja como está seu arquivo hibernate.cfg.xml eu particulmente nao gosto de ter um arquivo properties, acho o xml, mais facil para fazer as configuracoes e rapido tb, nao curto colocar as configs dentro do .java, como vc fez, uma que qdo muda algo na config terei que compilar o .java, no xml nao preciso disso.

T

Mas eu não uso xml, fiz assim pra testar o banco! :frowning:

Criado 13 de fevereiro de 2011
Ultima resposta 14 de fev. de 2011
Respostas 7
Participantes 2