erico_kl 12 de out. de 2012
como está a sua DAO e como você faz o acesso à ela?
samuelM 12 de out. de 2012
import br.com.loja.entities.Automovel ;
import javax.persistence.EntityManager ;
import javax.persistence.EntityManagerFactory ;
import javax.persistence.EntityTransaction ;
import javax.persistence.Persistence ;
/**
*
* @author samuelM
*/
public class PersistidorDeAutomovel {
public static void main ( String [] args ) {
EntityManagerFactory emf = Persistence . createEntityManagerFactory ( "default" );
EntityManager em = emf . createEntityManager ();
Automovel auto = new Automovel ();
auto . setModelo ( "Ferrari" );
EntityTransaction tx = em . getTransaction ();
tx . begin ();
em . persist ( auto );
tx . commit ();
em . close ();
emf . close ();
}
}
samuelM 12 de out. de 2012
<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= "default" transaction-type= "RESOURCE_LOCAL" >
<provider> org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name= "hibernate.connection.username" value= "root" />
<property name= "hibernate.connection.driver_class" value= "com.mysql.jdbc.Driver" />
<property name= "hibernate.connection.password" value= "senha" />
<property name= "hibernate.connection.url" value= "jdbc:mysql://localhost:3306/automoveis" />
<property name= "hibernate.dialect" value= "org.hibernate.dialect.MySQLInnoDBDialect" />
<!--Configuracoes de Debug-->
<property name= "hibernate.show_sql" value= "true" />
<property name= "hibernate.format_sql" value= "true" />
<property name= "use_sql_comments" value= "true" />
</properties>
</persistence-unit>
</persistence>
JUniorDOzito 12 de out. de 2012
Coloque como property no persistence.xml
<property name=“hibernate.hbm2ddl.auto” value “update” />
samuelM 12 de out. de 2012
Inseri e continua a mesma coisa compilando, executando e nao gerando exception e simplesmente nao persistindo no banco
JUniorDOzito 12 de out. de 2012
Vc criou a tabela Automovel na mão, ou usou o EntityManagerFactory para criar?
muda o update para create na propriedade hibernate.hbm2ddl.auto
samuelM 12 de out. de 2012
Criei na mão.
Rodei como create e o mesmo problema :(.
package br.com.loja.entities ;
import java.io.Serializable ;
import javax.persistence.Entity ;
import javax.persistence.GeneratedValue ;
import javax.persistence.Id ;
import static javax.persistence.GenerationType.IDENTITY ;
/**
*
* @author samuelM
*/
@Entity
public class Automovel implements Serializable {
@Id
@GeneratedValue ( strategy = IDENTITY )
private Integer id ;
private String marca ;
private String modelo ;
private String observacoes ;
private Integer anoFabricacao ;
private Integer anoModelo ;
public Integer getId () {
return id ;
}
public void setId ( Integer id ) {
this . id = id ;
}
public String getMarca () {
return marca ;
}
public void setMarca ( String marca ) {
this . marca = marca ;
}
public String getModelo () {
return modelo ;
}
public void setModelo ( String modelo ) {
this . modelo = modelo ;
}
public String getObservacoes () {
return observacoes ;
}
public void setObservacoes ( String observacoes ) {
this . observacoes = observacoes ;
}
public Integer getAnoFabricacao () {
return anoFabricacao ;
}
public void setAnoFabricacao ( Integer anoFabricacao ) {
this . anoFabricacao = anoFabricacao ;
}
public Integer getAnoModelo () {
return anoModelo ;
}
public void setAnoModelo ( Integer anoModelo ) {
this . anoModelo = anoModelo ;
}
}
aprendizweb 13 de out. de 2012
Faz o seguinte, apaga a tabela automovel que vc criou e deixa seu
persistence.xml assim:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version= "2.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_2_0.xsd" >
<persistence-unit name= "default" transaction-type = "RESOURCE_LOCAL" >
<provider> org.hibernate.ejb.HibernatePersistence</provider>
<class> br.com.loja.entities.Automovel</class>
<properties>
<property name= "hibernate.dialect" value= "org.hibernate.dialect.MySQLDialect" />
<property name= "hibernate.hbm2ddl.auto" value= "update" />
<property name= "hibernate.show_sql" value= "true" />
<property name= "hibernate.format_sql" value= "true" />
<property name= "javax.persistence.jdbc.driver" value= "com.mysql.jdbc.Driver" />
<property name= "javax.persistence.jdbc.url" value= "jdbc:mysql://localhost:3306/automoveis" />
<property name= "javax.persistence.jdbc.user" value= "root" />
<property name= "javax.persistence.jdbc.password" value= "senha" />
</properties>
</persistence-unit>
</persistence>
samuelM 13 de out. de 2012
Pq apagar minha tabela do banco ?
aprendizweb 13 de out. de 2012
para que o Hibernate gere ela automaticamente!!!
samuelM 13 de out. de 2012
Ixi ai zico, agora deu erro… antes n estava gerando stack trace ;\ veja
run :
WARN [ main ] ( UserSuppliedConnectionProvider . java : 23 ) - No connection properties specified - the user must supply JDBC connections
ERROR [ main ] ( SchemaUpdate . java : 165 ) - could not complete schema update
java . lang . UnsupportedOperationException : The user must supply a JDBC connection
Exception in thread "main" java . lang . UnsupportedOperationException : The user must supply a JDBC connection
at org . hibernate . connection . UserSuppliedConnectionProvider . getConnection ( UserSuppliedConnectionProvider . java : 30 )
at org . hibernate . connection . UserSuppliedConnectionProvider . getConnection ( UserSuppliedConnectionProvider . java : 30 )
at org . hibernate . tool . hbm2ddl . SuppliedConnectionProviderConnectionHelper . prepare ( SuppliedConnectionProviderConnectionHelper . java : 27 )
at org . hibernate . jdbc . ConnectionManager . openConnection ( ConnectionManager . java : 423 )
at org . hibernate . tool . hbm2ddl . SchemaUpdate . execute ( SchemaUpdate . java : 127 )
at org . hibernate . jdbc . ConnectionManager . getConnection ( ConnectionManager . java : 144 )
at org . hibernate . impl . SessionFactoryImpl . < init > ( SessionFactoryImpl . java : 314 )
at org . hibernate . jdbc . JDBCContext . connection ( JDBCContext . java : 119 )
at org . hibernate . cfg . Configuration . buildSessionFactory ( Configuration . java : 1294 )
at org . hibernate . transaction . JDBCTransaction . begin ( JDBCTransaction . java : 57 )
at org . hibernate . cfg . AnnotationConfiguration . buildSessionFactory ( AnnotationConfiguration . java : 915 )
at org . hibernate . impl . SessionImpl . beginTransaction ( SessionImpl . java : 1326 )
at org . hibernate . ejb . Ejb3Configuration . buildEntityManagerFactory ( Ejb3Configuration . java : 730 )
at org . hibernate . ejb . TransactionImpl . begin ( TransactionImpl . java : 38 )
at org . hibernate . ejb . HibernatePersistence . createEntityManagerFactory ( HibernatePersistence . java : 121 )
at javax . persistence . Persistence . createEntityManagerFactory ( Persistence . java : 51 )
at javax . persistence . Persistence . createEntityManagerFactory ( Persistence . java : 33 )
at PersistidorDeAutomovel . main ( PersistidorDeAutomovel . java : 22 )
at PersistidorDeAutomovel . main ( PersistidorDeAutomovel . java : 14 )
Java Result : 1
CONSTRUÍDO COM SUCESSO ( tempo total : 11 segundos )
mauriciot.silva 13 de out. de 2012
vs estah abrindo um transacao e a comitando?
samuelM 13 de out. de 2012
Sim veja:
public static void main ( String [] args ) {
EntityManagerFactory emf = Persistence . createEntityManagerFactory ( "default" );
EntityManager em = emf . createEntityManager ();
Automovel auto = new Automovel ();
auto . setModelo ( "Ferrari" );
EntityTransaction tx = em . getTransaction ();
tx . begin ();
em . persist ( auto );
tx . commit ();
em . close ();
emf . close ();
}
aprendizweb 13 de out. de 2012
Sua conexão com o banco esta correta?, verifique sua senha e usuario, testei seu codigo da classe PersistidorDeAutomovel e funcionou normalmente.
samuelM 13 de out. de 2012
Sim esta correta, criei ate uma conexao pela opcao do netbeans servicos > banco de dados e setei a senha la e ele conecta normal… cara q zica JPA e hibernate pqp
aprendizweb 13 de out. de 2012
onde esta seu arquivo persistence.xml ?, posta ai como esta a estrutura do seu projeto. Vc esta usuando o Netbeans, aqui eu utilizo o Eclipse e pode haver algumas diferenças na estrutura do projeto.
samuelM 13 de out. de 2012
PROJETO
—Pacote codigo fonte
---------pacote default
------------PersistidorDeAutomoveis.java
------------log4j.properties
---------META-INF
------------persistence.xml
---------br.com.loja.entites
------------Automovel.java
------------Cliente.java
samuelM 13 de out. de 2012
Acabo de trocar o driver do mysql e continua meu deus essas coisas so acontece comigo rsrsrsrsrsrsrsrs
samuelM 13 de out. de 2012
Consegui
mudei as javax.persistence para hibernate.connection e agora foi.
Vlw pela tua atencao amigao.
Gratissimo.