Bruno_Reis 9 de fev. de 2011
run:
09/02/2011 14:04:22 org.hibernate.cfg.annotations.Version
INFO: Hibernate Annotations <a href= "http://3.3.1.GA" > 3.3.1.GA</a>
09/02/2011 14:04:23 org.hibernate.cfg.Environment
INFO: Hibernate 3.2.5
09/02/2011 14:04:23 org.hibernate.cfg.Environment
INFO: hibernate.properties not found
09/02/2011 14:04:23 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
09/02/2011 14:04:23 org.hibernate.cfg.Environment
INFO: using JDK 1.4 java.sql.Timestamp handling
09/02/2011 14:04:23 org.hibernate.ejb.Version
INFO: Hibernate EntityManager <a href= "http://3.3.2.GA" > 3.3.2.GA</a>
09/02/2011 14:04:24 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: Cliente
09/02/2011 14:04:24 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity Cliente on table Cliente
09/02/2011 14:04:24 org.hibernate.cfg.AnnotationConfiguration secondPassCompile
INFO: Hibernate Validator not found: ignoring
09/02/2011 14:04:25 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Using Hibernate built-in connection pool (not for production use!)
09/02/2011 14:04:25 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: Hibernate connection pool size: 20
09/02/2011 14:04:25 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: autocommit mode: true
09/02/2011 14:04:25 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/javaHibernate
09/02/2011 14:04:25 org.hibernate.connection.DriverManagerConnectionProvider configure
INFO: connection properties: {user=postgres, password=****, autocommit=true, release_mode=auto}
09/02/2011 14:04:25 org.hibernate.cfg.SettingsFactory buildSettings
AVISO: Could not obtain connection metadata
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "postgres"
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:291)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
at org.postgresql.jdbc2.AbstractJdbc2Connection.(AbstractJdbc2Connection.java:125)
at org.postgresql.jdbc3.AbstractJdbc3Connection.(AbstractJdbc3Connection.java:30)
at org.postgresql.jdbc3g.AbstractJdbc3gConnection.(AbstractJdbc3gConnection.java:22)
at org.postgresql.jdbc4.AbstractJdbc4Connection.(AbstractJdbc4Connection.java:30)
at org.postgresql.jdbc4.Jdbc4Connection.(Jdbc4Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:393)
at org.postgresql.Driver.connect(Driver.java:267)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at Main.main(Main.java:16)
Exception in thread “main” javax.persistence.PersistenceException: [PersistenceUnit: ClienteJPA] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at Main.main(Main.java:16)
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
… 4 more
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)
Bruno_Reis 9 de fev. de 2011
<?xml version="1.0" encoding="UTF-8"?>
<persistence version= "1.0" xmlns= "http://java.sun.com/xml/ns/persistence" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" >
<persistence-unit name= "ClienteJPA" transaction-type= "RESOURCE_LOCAL" >
<!-- <provider>org.hibernate.ejb.HibernatePersistence</provider> -->
<provider> org.hibernate.ejb.HibernatePersistence</provider>
<class> Cliente</class>
<properties>
<property name= "hibernate.cache.provider_class" value= "org.hibernate.cache.NoCacheProvider" />
<property name= "hibernate.connection.driver_class" value= "org.postgresql.Driver" />
<property name= "hibernate.connection.url" value= "jdbc:postgresql://localhost/javaHibernate" />
<property name= "hibernate.connection.username" value= "postgres" />
<property name= "hibernate.connection.password" value= "postgres" />
<property name= "hibernate.dialect" value= "org.hibernate.dialect.PostgreSQLDialect" />
<!-- <property name="hibernate.hbm2ddl.auto" value="create-drop"/> -->
</properties>
</persistence-unit>
</persistence>
Bruno_Reis 9 de fev. de 2011
import java.io.Serializable ;
import javax.persistence.* ;
import java.util.* ;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author bruno
*/
@Entity
@Table ( name = "Cliente" )
public class Cliente implements Serializable {
@Id
@GeneratedValue ( strategy = GenerationType . IDENTITY )
@Column ( unique = true , nullable = false )
private int codigo ;
@Column ( length = 45 )
private String cpf ;
@Column ( length = 45 )
private String rg ;
@Column ( length = 45 )
private String nome ;
@Column ( length = 45 )
private String telefone ;
@Column ( name = "data_nasc" )
@Temporal ( TemporalType . DATE )
private Date dataNascimento ;
/**
* @return the codigo
*/
public int getCodigo () {
return codigo ;
}
/**
* @param codigo the codigo to set
*/
public void setCodigo ( int codigo ) {
this . codigo = codigo ;
}
/**
* @return the cpf
*/
public String getCpf () {
return cpf ;
}
/**
* @param cpf the cpf to set
*/
public void setCpf ( String cpf ) {
this . cpf = cpf ;
}
/**
* @return the rg
*/
public String getRg () {
return rg ;
}
/**
* @param rg the rg to set
*/
public void setRg ( String rg ) {
this . rg = rg ;
}
/**
* @return the nome
*/
public String getNome () {
return nome ;
}
/**
* @param nome the nome to set
*/
public void setNome ( String nome ) {
this . nome = nome ;
}
/**
* @return the telefone
*/
public String getTelefone () {
return telefone ;
}
/**
* @param telefone the telefone to set
*/
public void setTelefone ( String telefone ) {
this . telefone = telefone ;
}
/**
* @return the dataNascimento
*/
public Date getDataNascimento () {
return dataNascimento ;
}
/**
* @param dataNascimento the dataNascimento to set
*/
public void setDataNascimento ( Date dataNascimento ) {
this . dataNascimento = dataNascimento ;
}
}
Bruno_Reis 9 de fev. de 2011
import javax.persistence.* ;
public class Main {
public static void main ( String [] args ){
EntityManagerFactory emf = Persistence . createEntityManagerFactory ( "ClienteJPA" );
EntityManager em = emf . createEntityManager ();
Cliente cliente = new Cliente ();
cliente . setCodigo ( 1 );
cliente . setNome ( "Bruno" );
cliente . setRg ( "371819" );
cliente . setTelefone ( "9711 6103" );
em . getTransaction (). begin ();
em . persist ( cliente );
em . getTransaction (). commit ();
em . close ();
emf . close ();
}
}
xandevieira 9 de fev. de 2011
AVISO: Could not obtain connection metadata
org.postgresql.util.PSQLException: FATAL: password authentication failed for user “postgres” lazaropj 9 de fev. de 2011
Cara… me parece a senha para acessar o banco…
olha seu erro:
org .postgresql .util .PSQLException : FATAL : password authentication failed for user "postgres"
Bruno_Reis 9 de fev. de 2011
Então Lazaro
quando eu aponto para outra base de dados por ex.
a saída do console não muda, fica como se não tivesse alterado o xml
eu mudei apontando para outra base que não seja o localhost/javaHibernate
mudei para localhost/postgres
na saída do console não muda, continua dizendo que está apontando para localhost/javaHibernate
é como se eu não tivesse alterado o xml
estranho, existe algum bug no netbeans que não altera ou captura as alteraçãoes do persistence.xml?
lazaropj 9 de fev. de 2011
Se existe bug no NetBeans, eu não conheço.
Mas tenta alterar o xml, salvar e dar um refresh no projeto para ser de muda no console…
Outra coisa… esses bancos já estão criados no postgres né?
Pq o hibernate cria as tabelas… mas o banco tem q estar criado… mesmo q esse banco esteja sem tabela alguma…
lazaropj 9 de fev. de 2011
e oq vc comentou essa linha:
<!-- < property name = "hibernate.hbm2ddl.auto" value = "create-drop" /> -->
?
Bruno_Reis 9 de fev. de 2011
amigo Lazaro
agora mudou , acho que progrediu
só que ainda está dando esse erro
INFO : schema export complete
Exception in thread "main" javax . persistence . PersistenceException : org . hibernate . PersistentObjectException : detached entity passed to persist : Cliente
at org . hibernate . ejb . AbstractEntityManagerImpl . throwPersistenceException ( AbstractEntityManagerImpl . java : 637 )
at org . hibernate . ejb . AbstractEntityManagerImpl . persist ( AbstractEntityManagerImpl . java : 226 )
at Main . main ( Main . java : 27 )
Caused by : org . hibernate . PersistentObjectException : detached entity passed to persist : Cliente
at org . hibernate . event . def . DefaultPersistEventListener . onPersist ( DefaultPersistEventListener . java : 79 )
at org . hibernate . event . def . DefaultPersistEventListener . onPersist ( DefaultPersistEventListener . java : 38 )
at org . hibernate . impl . SessionImpl . firePersist ( SessionImpl . java : 618 )
at org . hibernate . impl . SessionImpl . persist ( SessionImpl . java : 592 ) at org . hibernate . impl . SessionImpl . persist ( SessionImpl . java : 592 )
at org . hibernate . impl . SessionImpl . persist ( SessionImpl . java : 596 )
at org . hibernate . ejb . AbstractEntityManagerImpl . persist ( AbstractEntityManagerImpl . java : 220 )
... 1 more
Java Result : 1
CONSTRUÍDO COM SUCESSO ( tempo total : 14 segundos )
Bruno_Reis 9 de fev. de 2011
nessa linha
<!-- < property name = "hibernate.hbm2ddl.auto" value = "create-drop" /> -->
eu achei num tutorial de apostila, nem sei para que serve
é importante?
lazaropj 9 de fev. de 2011
Então… nessa linha vc configura como o hibernate vai tratar as entidades… desse jeito q está… ele vai apagar as tabelas existentes e criar novas…
então é bom vc trocar para update
coloca assim:
<property name="hibernate.hbm2ddl.auto" value="update"/>
lazaropj 9 de fev. de 2011
e outra coisa…
vc não dividiu por pacotes as classes?
Se vc colocar… vc tem q colocar o fullpath da classe.
bobboyms 8 de out. de 2011