Isso só acontece comigo?

19 respostas
S

Gente muito estranho estou persistindo em um banco mysql usando o netbeans, criei o log4j, enfim rodo o metodo ele retorna o sucesso

run:
Hibernate: 
    insert 
    into
        Automovel
        (anoFabricacao, anoModelo, marca, modelo, observacoes) 
    values
        (?, ?, ?, ?, ?)
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Porem nao chega a informacao do banco e nao gera stacktrace nenhuma nem no console nem no arquivo .log o que é isso e agora??

19 Respostas

erico_kl

como está a sua DAO e como você faz o acesso à ela?

S
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();
    }
}
S
<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

Coloque como property no persistence.xml

<property name=“hibernate.hbm2ddl.auto” value “update” />

S

Inseri e continua a mesma coisa compilando, executando e nao gerando exception e simplesmente nao persistindo no banco :frowning:

JUniorDOzito

Vc criou a tabela Automovel na mão, ou usou o EntityManagerFactory para criar?

muda o update para create na propriedade hibernate.hbm2ddl.auto

S

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

Pq apagar minha tabela do banco ?

aprendizweb

para que o Hibernate gere ela automaticamente!!!

S

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

vs estah abrindo um transacao e a comitando?

S

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

Sua conexão com o banco esta correta?, verifique sua senha e usuario, testei seu codigo da classe PersistidorDeAutomovel e funcionou normalmente.

S

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

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.

S

PROJETO
—Pacote codigo fonte
---------pacote default
------------PersistidorDeAutomoveis.java
------------log4j.properties
---------META-INF
------------persistence.xml
---------br.com.loja.entites
------------Automovel.java
------------Cliente.java

S

Acabo de trocar o driver do mysql e continua meu deus essas coisas so acontece comigo rsrsrsrsrsrsrsrs

S

Consegui

mudei as javax.persistence para hibernate.connection e agora foi.

Vlw pela tua atencao amigao.

Gratissimo.

Criado 12 de outubro de 2012
Ultima resposta 13 de out. de 2012
Respostas 19
Participantes 5