6
respostas

Estou usando o hibernate configurei o persistence mas estou tomando uma exception com.mysql.cj.exceptions.InvalidConnectionAttributeException

eu estou otilizado o wamp com o mysql workbench queria fazer uma conexao com o banco de dados. mas nao estou conseguindo.

6 respostas

Oi Rafael, poste a stacktrace completa aqui para podermos verificar o que realmente está acontecendo.

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Hora oficial do Brasil' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:83)
    at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:128)
    at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2201)
    at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2225)
    at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1391)
    at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:993)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:852)

Obrigado por responder =D

Olá Rafael, o problema é no timezone do banco. Para evitar este problema, modifique a url de conexão para:

 <property name="javax.persistence.jdbc.url" 
                value="jdbc:mysql://localhost/financas?useTimezone=true&serverTimezone=UTC" />

E no persistence.xml modifique o drive de conexão:

  <property name="javax.persistence.jdbc.driver" 
                value="com.mysql.cj.jdbc.Driver" />

Tente fazer isso e veja se dá certo. Provavelmente isto está acontecendo pq sua versão do driver é diferente da utilizada no curso.

org.hibernate.jpa.HibernatePersistenceProvider br.com.caelum.financas.modelo.Conta

este é meu persistence será o que esta errado ??

Caused by: javax.persistence.PersistenceException: Unable to locate persistence units at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:85) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at br.com.caelum.financas.util.JPAUtil.(JPAUtil.java:9) ... 1 more Caused by: javax.persistence.PersistenceException: Unexpected error parsing [file:/C:/Users/Rafael%20Souza/eclipse-workspace/financas/bin/META-INF/persistence.xml] at org.hibernate.jpa.boot.internal.PersistenceXmlParser.loadUrl(PersistenceXmlParser.java:443) at org.hibernate.jpa.boot.internal.PersistenceXmlParser.parsePersistenceXml(PersistenceXmlParser.java:242) at org.hibernate.jpa.boot.internal.PersistenceXmlParser.parsePersistenceXml(PersistenceXmlParser.java:235) at org.hibernate.jpa.boot.internal.PersistenceXmlParser.doResolve(PersistenceXmlParser.java:229) at org.hibernate.jpa.boot.internal.PersistenceXmlParser.locatePersistenceUnits(PersistenceXmlParser.java:67) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:81) ... 6 more Caused by: org.xml.sax.SAXParseException; lineNumber: 16; columnNumber: 87; A referência à entidade "serverTimezone" deve terminar com o delimitador ';'. at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) at org.hibernate.jpa.boot.internal.PersistenceXmlParser.loadUrl(PersistenceXmlParser.java:438) agora tenho estas exception.