Erro ao conectar JPA/Hibernate/SpringData

6 respostas Resolvido
programaçãojavamysqlspring
Alexsandro_Andrade

boa noite, estou configurando o spring data para obter conexão em um banco de dados mysql.

o sistema apresenta o seguinte erro ao fazer uma consulta no banco.

2018-05-28 17:29:12 INFO  ClassPathXmlApplicationContext:583 - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@33e5ccce: startup date [Mon May 28 17:29:12 GFT 2018]; root of context hierarchy

2018-05-28 17:29:12 INFO  XmlBeanDefinitionReader:317 - Loading XML bean definitions from URL [file:src/main/resources/META-INF/springbeans.xml]

2018-05-28 17:29:13 INFO  DriverManagerDataSource:133 - Loaded JDBC driver: com.mysql.jdbc.Driver

2018-05-28 17:29:13 INFO  DefaultPersistenceUnitManager:500 - Found explicit default unit with name intranethope in persistence.xml - overriding local default unit settings (packagesToScan/mappingResources)

2018-05-28 17:29:13 INFO  LocalContainerEntityManagerFactoryBean:356 - Building JPA container EntityManagerFactory for persistence unit 'intranethope

2018-05-28 17:29:13 INFO  Version:37 - HCANN000001: Hibernate Commons Annotations {4.0.1.Final}

2018-05-28 17:29:13 INFO  Version:41 - HHH000412: Hibernate Core {4.0.1.Final}

2018-05-28 17:29:13 INFO  Environment:239 - HHH000206: hibernate.properties not found

2018-05-28 17:29:13 INFO  Environment:342 - HHH000021: Bytecode provider name : javassist

2018-05-28 17:29:13 INFO  Ejb3Configuration:526 - HHH000204: Processing PersistenceUnitInfo [

name: intranethope

]

2018-05-28 17:29:13 INFO  ConnectionProviderInitiator:186 - HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider

2018-05-28 17:29:13 WARN  ClassPathXmlApplicationContext:551 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name entityManagerFactory defined in URL [file:src/main/resources/META-INF/springbeans.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: intranethope] Unable to build EntityManagerFactory; nested exception is org.hibernate.HibernateException: Could not instantiate dialect class

6 Respostas

Alexsandro_Andrade

meu arquivo de configuração

<?xml version="1.0" encoding="UTF-8"?>

<bean id="entityManagerFactory"
	class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="persistenceUnitName" value="intranethope"></property>
	<property name="jpaVendorAdapter">
		<bean
			class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
			<property name="generateDdl" value="true" />
			<property name="showSql" value="true" />
			<property name="databasePlatform" value="org.springframework.orm.jpa.vendor.HibernateJpaDialect"></property>
		</bean>
	</property>
	<property name="packagesToScan"
		value="br.com.cursospringdata.curso.entity" />

</bean>


<bean id="dataSource"
	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="username" value="root"></property>
	<property name="password" value="123456"></property>
	<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
	<property name="url" value="jdbc:mysql://localhost:3306/intranethope"></property>
</bean>
Alexsandro_Andrade

classe onde gero o entitymanager

package br.com.intranethope.util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class JPAUtil {

ClassPathXmlApplicationContext ctx;

private EntityManagerFactory emf;

private static JPAUtil instance;
private JPAUtil() {
	 ctx = new ClassPathXmlApplicationContext("file:src/main/resources/META-INF/springbeans.xml");
	 emf = (EntityManagerFactory) ctx.getBean("entityManagerFactory");
	 
}

public static synchronized JPAUtil getInstance() {

	if (instance == null) {
		 instance = new JPAUtil();
	}
	return instance;
}

public EntityManager getEntityManager() {

	return emf.createEntityManager();
}

}

darlan_machado

Acredito que precise especificar a propriedade referente ao dialect

Alexsandro_Andrade

boa noite darlan, tambem acho que é isso, inclusive ja mexi bastante nessa parte, o erro persiste, consegue comparar com o seu aí?

darlan_machado
Solucao aceita

Eu não uso, mas, li o erro.
O dialeto do MySQL é o org.hibernate.dialect.MySQL5Dialect ou o genérico org.hibernate.dialect.MySQLDialect
Agora, o nome da propriedade em si, já não sei. Creio que seja dialect mesmo

<property name="dialect" value="org.hibernate.dialect.MySQLDialect"></property>
Alexsandro_Andrade

Obrigado Darlan, funcionou perfeitamente!

Criado 28 de maio de 2018
Ultima resposta 28 de mai. de 2018
Respostas 6
Participantes 2