Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao criar tabelas - MYSQL

Boa noite, preciso de uma ajuda com o meu código pois não consigo que as tabelas sejam criadas automaticamente.

package br.com.casadocodigo.loja.conf;

import java.util.Properties;

import javax.persistence.EntityManagerFactory;

import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableTransactionManagement
public class JPAConfiguration {

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();

        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        factoryBean.setJpaVendorAdapter(vendorAdapter);

         DriverManagerDataSource dataSource = new DriverManagerDataSource();
         dataSource.setUsername("root");
         dataSource.setPassword("admin");
         dataSource.setUrl("jdbc:mysql://localhost:3306/casadocodigo");
         dataSource.setDriverClassName("com.mysql.jdbc.Driver");

         factoryBean.setDataSource(dataSource);

         Properties props = new Properties();
         props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
         props.setProperty("hibernate.show_sql", "true");
         props.setProperty("hibernate.hbm2ddl", "update");

         factoryBean.setJpaProperties(props);

         factoryBean.setPackagesToScan("br.com.casadocodigo.loja.models");

         return factoryBean;
    }

    @Bean
    public JpaTransactionManager transactionManager(EntityManagerFactory emf){
        return new JpaTransactionManager(emf);

    }

}
2 respostas
solução!

props.setProperty("hibernate.hbm2ddl", "update");

Substitui por :

props.setProperty("hibernate.hbm2ddl.auto", "update");

Estava com vários problemas para criação das tabelas. Verifiquei que minha versão do mysql era a 8.0.12 e muitas dependências (pom.xml - hibernate-entitymanager/mysql-connector-java) estavam com problemas. Desinstalei essa versão e baixei a 5.5.60.1. Agora está tudo ok, rodando ! faz esse teste caso sua versão do mysql é mais atual.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software