4
respostas

Erro ao cadastrar Autor

Galera, tenho o seguinte erro quando tento inserir o autor: Erro 500: Message javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection

Console:

Caused by: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
    at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1041)
    at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3496)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2460)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    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.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:193)
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
    ... 45 more
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
    at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:992)
    ... 62 more

Já havia criado as tabelas com jpa, ou seja, a conexão está OK. Mas no momento de inserir o autor pelo campo, não recebe a informação...

4 respostas

Fala Gedan, tudo bem?

Provavelmente você está usando o MySQL 8, correto?

Se for este o caso, você vai precisar atualizar o driver JDBC do seu projeto. Pelo menos para a versão mysql-connector-java-8.0.11.jar

Você pode baixar nesse link: https://dev.mysql.com/downloads/connector/j/

E aí cara !

Então, antes de executar o projeto eu já havia baixado e adicionado o connector do mysql 8.0.11 . Antes de dar esse erro, eu havia pesquisado pois não estava conseguindo executar o populaBanco, e após inserir o driver e atualizar a propriedade para: <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/livrariadb?useTimezone=true&serverTimezone=UTC" /> ele chegou a criar as tabelas mas ao rodar o xhtml tentando cadastrar o autor, retorna esse erro.

tenta colocar a url de conexão nesse padrão de formato:

jdbc:mysql://127.0.0.1:3306/database?zeroDateTimeBehavior=convertToNull&serverTimezone=UTC

com os parameters depois do ?

Não deu certo também. Ele da erro de sintaxe falando que está faltando um " ; "