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

Error creating bean with name 'entityManagerFactory'

Eu consegui resolver o problema, mas eu tenho duvidas de algumas coisas.

Eu tentei usar o projeto que é disponibilizado no final da aula e mesmo assim não rodou.

O erro era Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set spring boot vi que o erro era a falta de especificar o dialeto.

Então coloquei um metodo a additionalProperties()

@Bean
    public Properties additionalProperties() {
        Properties props = new Properties();
        props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
        props.setProperty("hibernate.show_sql", "true");
        props.setProperty("hibernate.hbm2ddl.auto", "update");
        return props;
    }

e funcionou na versão do pom.xml da aula. Voltei para a versão do pom.xml mais atualizada e reclamou sobre The server time zone value 'Hora oficial do Brasil' is unrecognized or represents more than one time zone.

Se eu voltava para o pom.xml antigo não dava o erro de timezone.

Eu apaguei o banco, executei de novo o codigo que foi passado na aula 1, só que mais enxuto, só com o create table e insert. Modifiquei a url para forçar a timezone(acho que não fiz direito) e nada.

Achei um lugar que pedia para fornecer a timezone no banco e fiz o comando: SET GLOBAL time_zone = '-3:00' E funcionou a versão nova do pom.xml.

Experimentei e tirei o metodo additionalProperties() que passava os dialetos e funcionou também. Voltei para o pom.xml da aula e também funcionou.

Existem algum porque disso? Para as configurações do spring boot funcionar é preciso timezone, ou algo assim?

2 respostas
solução!

O timezone provavelmente é um requisito da versão mais nova do driver do MySQL. Por isso que o vai e vem das versões deu resultado para você :).

Eu procurei um pouco sobre e vi que tem algumas soluções dizendo que é um erro do MySql 6.x . Que era para voltar para versão 5 e settar a timezone. O estranho é que teoricamente esse bug foi corrigido na versão 6.0.3

"With some Tomcat web applications, when Connector/J connects to the server with useLegacyDatetimeCode=false without setting serverTimeZone, a NullPointerException was returned. This was because the timezone property file for Connector/J was loaded by the bootstrap class loader, which did not know the location of the property file and thus failed to load it. This fix avoids the problem by making Connector/J use the same class loader for both the property file and the Connector/J classes. (Bug #23197026, Bug #81214)"