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