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

Tabelas não são geradas Automaticamente.

Já tentei de varias formas, mas as tabelas não estão sendo criadas automaticamente...

Alguém pode me dar um help?

@EnableTransactionManagement
public class JPAConfiguration {

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() {
        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();

        factoryBean.setJpaVendorAdapter(vendorAdapter);

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

        factoryBean.setDataSource(dataSource);

        Properties props = new Properties();

        props.setProperty("hibernate.dialect",
                "org.hibernate.dialect.MySQL5InnoDBDialect");
        props.setProperty("hibernate.show_sql", "true");
        props.setProperty("hibernate.hbm2ddl.auto", "update");

        factoryBean.setJpaProperties(props);

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

        return factoryBean;
    }

    @Bean
    public JpaTransactionManager jpaTransactionManager(EntityManagerFactory emf) {
        JpaTransactionManager transactionManager = new JpaTransactionManager();
        transactionManager.setEntityManagerFactory(emf);

        return transactionManager;
    }
}
@EnableWebMvc
@ComponentScan(basePackageClasses= {HomeController.class, ProdutoDAO.class})
public class appWebConfiguration {

    @Bean
    public InternalResourceViewResolver InternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}
public class ServletSpringMVC extends AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return new Class[] {appWebConfiguration.class, JPAConfiguration.class};
    }

    @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String[] {"/"};
    }

}
5 respostas

Olá Arnaldo,

Quando eu fiz o curso, eu utilizei outro dialeto, tenta colocar o dialeto abaixo para ver se funciona:

props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");

Não funcionou cara, um detalhe a se observar, é que, mesmo que eu informe uma base de dados que não existe, ele não acusa erro...

É como se ele nem tentasse abrir a conexão.

Arnaldo, boa tarde ! Assim que o servidor é startado, a aplicação sobe sem nenhum problema? Na aba de Log não aparece nenhum tipo de erro?

Infelizmente nao parece nenhuma mensagem de erro ou de warming que indique algo...

solução!

Boa madrugada para vocês. Depois de dois dias procurando, vi que o erro era simples demais, até me revoltou. kkkk

O problema era com minha Entidade:

@Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private String titulo;
    private String descricao;
    private int paginas;

Bem... Depois de ativar o Log4J, ele me indicou o erro ao contruir a tabela... Foi quando percebi que nao possu usar um autoincrement para uma variavel do tipo String... me revoltei, mas fiquei feliz! Mais uma solução para a base de dados.

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