Feld-session in 'xxxDAOImpl erforderlich, eine bean des Typs 'org.hibernate.SessionFactory' konnte nicht gefunden werden
Ich erhalte die folgende Fehlermeldung (von der ich glaube, die Dao-Schicht - aber ich konnte Lesen das falsch).
Ich habe eine Spring-boot-app, die jetzt erstellt ein DB-schema. Die Tabellen werden richtig erstellen, aber wenn ich versucht, indem die Dao und DaoImpl Dateien, stürzt er ab mit der Fehlermeldung unten:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field session in xx.dao.ParkingSpaceDaoImpl required a bean of type 'org.hibernate.SessionFactory' that could not be found.
Action:
Consider defining a bean of type 'org.hibernate.SessionFactory' in your configuration.
In meinem DaoImpl-Datei, die ich habe:
@Repository
public class xxDaoImpl implements xxDao {
@Autowired
private SessionFactory session;
Hier ist, wie meine POM.xml Datei aussieht:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xx.xx</groupId>
<artifactId>xxx</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Hat jemand eine Idee, wie ich dieses Problem beheben? Bitte lassen Sie mich wissen, danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also ich habe eine Lösung gefunden, die funktioniert für mich. Mathias war wohl Recht haben, wenn Sie mit einer Konfiguration .xml-Datei. Aber für diejenigen, die mit einer Anwendung.properties-Datei, müssen Sie die folgende Zeile zu Ihrer Konfiguration-Klasse oder Hauptanwendung-Klasse:
Sobald Sie dies getan haben, fügen Sie diese Zeile an die Anwendung.Eigenschaften Datei:
Diese Lösung funktionierte für mich. Hier sind weitere Referenzen, die ich in der Lage war zu arbeiten:
http://www.ekiras.com/2016/02/how-to-use-configure-session-factory-bean-springboot.html
Spring Boot - Griff Hibernate-SessionFactory
@Transactional
annotation an der Methode, wo ich war mit derSessionFactory
. 🙂 Danke.Zunächst sicherstellen, die den Hibernate-Abhängigkeit ist auf Ihrem classpath.
Wenn es ist, sollten Sie definieren Ihre SessionFactory in den Frühlings-Datei ApplicationContext.
In dem Fall verwenden Sie Hibernate4, die Konfiguration muss so etwas sein:
Diese definition ermöglicht Ihnen die Verbindung mit Ihrer DB und im Frühjahr zu einer Ausnahme führen, wenn kein gültiges SessionFactory ist gefunden.