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

Erro 500 - não consigo avançar no conteúdo

Quando envio o formulário ocorre o seguinte erro: Message Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.UnsupportedOperationException: The application must supply JDBC connections

Meu JPA está da seguinte forma (meu mysql está na versão 8.0.17): @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

    LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();

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

    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setUsername("root");
    dataSource.setPassword("12345");
    dataSource.setUrl("jdbc:mysql://localhost:3306/casadocodigo?useTimezone=true&serverTimezone=UTC");    //endereço do BD com "?useTimezone=true&serverTimezone=UTC" para evitar conflito de horário
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); //"cj" adicionado para ser versão mais recente do driver 

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

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

    return factoryBean;
2 respostas

Olá Jhony!

Você está usando a versão 8 do MySQL mas seu dialeto está configurado para a versão 5:

org.hibernate.dialect.MySQL5Dialect

Tenta trocar para a versão 8 e veja se funciona:

org.hibernate.dialect.MySQL8Dialect

Aguardo seu retorno!

solução!

Muito obrigado Guilherme, porém fiz essa alteração mas ocorreram mais erros, não sei se soube fazer corretamente:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class br.com.casadocodigo.loja.conf.JPAConfiguration: Invocation of init method failed; nested exception is org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL8Dialect] as strategy [org.hibernate.dialect.Dialect]

Consegui achar o erro nesse fórum: https://cursos.alura.com.br/forum/topico-java-lang-unsupportedoperationexception-the-application-must-supply-jdbc-connections-57948

O projeto que o professor disponibilizou falta o seguinte código no JPA:

factoryBean.setDataSource(dataSource);