Я получаю ошибку ниже при подключении менеджера сущностей hibernate с моим sql и сбой запуска приложения. Springboot версии 2.0.5.RELEASE
Описание:
Для параметра 1 метода imdbEntityManager в **** требуется компонент типа 'org.springframework.boot.orm.jpa. EntityManagerFactoryBuilder ', который не найден.
Действие:
Рассмотрите возможность определения bean-компонента типа' org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder 'в вашей конфигурации.
Я прошел через многократный ответ в stackoverflow, пока ничего не помогало.
Конфиг. java
import java.util.HashMap;
import java.util.Map;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableJpaRepositories(basePackages = { "com.******.imdbsearch.repository" },
entityManagerFactoryRef = "imdbEntityManagerFactory",
transactionManagerRef = "imdbTransactionManager")
@EnableTransactionManagement
public class ImdbConfig {
@Primary
@Bean(name="dataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource imdbDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="***EntityManagerFactory")
public LocalContainerEntityManagerFactoryBean imdbEntityManager(@Qualifier("dataSource") DataSource dataSource,
EntityManagerFactoryBuilder builder){
Map<String, Object> objMap = new HashMap<String, Object>();
objMap.put("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect");
objMap.put("hibernate.show_sql", true);
objMap.put("hibernate.default_schema","imdb");
return builder.dataSource(dataSource)
.properties(objMap)
.packages("com.*****.imdbsearch.entities")
.persistenceUnit("target")
.build();
}
@Bean(name = "imdbTransactionManager")
public PlatformTransactionManager transactionManager(
@Qualifier("imdbEntityManagerFactory") EntityManagerFactory emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
@Bean(name = "imdbJdbcTemplate")
public JdbcTemplate slaveJdbcTemplate(@Qualifier("dataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
Приложение. java
@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class,WebMvcAutoConfiguration.class })
public class ImdbSearchApplication {
public static void main(String[] args) {
SpringApplication.run(ImdbSearchApplication.class, args);
}
yml файл
datasource:
url: jdbc:mysql://localhost:3306/*****
username: *******
password: ********
driverClassName: com.mysql.jdbc.Driver
jpa:
show-sql: false
generate-ddl: false
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
ddl-auto: validate
pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.*****</groupId>
<artifactId>imdb-search</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>imdb-search</name>
<description>Searche in IMDB </description>
<properties>
<java.version>1.8</java.version>
<lucene.version>6.6.0</lucene.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-orm</artifactId>
<version>5.11.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.4.Final</version>
</dependency>
<!-- <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId>
<version>${lucene.version}</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId> <version>${lucene.version}</version>
</dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId>
<version>${lucene.version}</version> </dependency> -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<!-- <version>5.1.5.RELEASE</version> -->
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<!-- <version>5.1.5.RELEASE</version> -->
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<!-- <version>5.1.5.RELEASE</version> -->
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
</plugin>
</plugins>
</build>
</project>