I'm doing a Sales System course, the teacher uses the 4.3.11
version of Hibernate
(which works perfectly).
But I would like migrar
for the current version ( 5.3.1
), but with the configuration of the last version, the one given in the course, it is not possible to persist in the database.
This is the code for the hibernate.cfg.xml file (version 4.3.11
, which is working):
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>
<session-factory>
<!-- Configurações da conexão com o Banco -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/vendas?useTimezone=true&serverTimezone=UTC</property>
<property name="connection.username">root</property>
<property name="connection.password">xxxxx</property>
<property name="hibernate.connection.autocommit">false</property>
<!-- Config da conexao JDBC Mysql -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- Gerenciamento da sessão mysql -->
<property name="current_session_context_class">thread</property>
<!-- Desabilita o cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Exibe os comando SQL -->
<property name="show_sql">true</property>
<!-- Criação das tabelas -->
<property name="hbm2ddl.auto">update</property>
<mapping class="br.com.livraria.domain.Fornecedores" />
<mapping class="br.com.livraria.domain.Funcionarios" />
<!-- <mapping class="br.com.livraria.domain.Produtos" />
<mapping class="br.com.livraria.domain.Vendas" />
<mapping class="br.com.livraria.domain.Item" /> -->
</session-factory>
</hibernate-configuration>
HibernateUtil.java class :
package br.com.livraria.util; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // Cria uma conexão a partir do hibernate.cfg.xml Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()).build(); SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry); return sessionFactory; //return new Configuration().configure().buildSessionFactory( // new StandardServiceRegistryBuilder().build() ); } catch (Throwable ex) { // Mensagem de erro ao conectar System.err.println("Erro na conexão." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; }}
Result of console when I change the version of Hibernate to 5.3.1.FINAL:
jun 02, 2018 7:06:38 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.1.Final}
jun 02, 2018 7:06:38 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
jun 02, 2018 7:06:39 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.3.Final}
jun 02, 2018 7:06:40 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
jun 02, 2018 7:06:40 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/vendas?useTimezone=true&serverTimezone=UTC]
jun 02, 2018 7:06:40 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
jun 02, 2018 7:06:40 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
jun 02, 2018 7:06:40 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 1 (min=1)
Sat Jun 02 19:06:40 BRT 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
jun 02, 2018 7:06:40 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
jun 02, 2018 7:06:40 PM org.hibernate.resource.beans.spi.ManagedBeanRegistryInitiator resoveBeanContainer
INFO: HHH10005002: No explicit CDI BeanManager reference was passed to Hibernate, but CDI is available on the Hibernate ClassLoader.
jun 02, 2018 7:06:41 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection
INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@3f6db3fb] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.
jun 02, 2018 7:06:41 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop
INFO: HHH10001008: Cleaning up connection pool[jdbc:mysql://localhost:3306/vendas?useTimezone=true&serverTimezone=UTC]
I believe the problem is in jun 02, 2018 7:06:41 PM
but I could not identify a solution.
I'm using Eclipse
, MAVEN
, JSF
and JUnit
.