gpt4 book ai didi

hibernate - 无法找到 'xxxDAOImpl required a bean of type ' org.hibernate.SessionFactory 中的字段 session

转载 作者:行者123 更新时间:2023-12-02 15:15:49 27 4
gpt4 key购买 nike

我收到以下错误(我相信来自 Dao 层 - 但我可能读错了)。

我现在有一个 Spring Boot 应用程序,可以创建一个数据库模式。表正在正确创建,但是当我尝试添加 Dao 和 DaoImpl 文件时,它崩溃并显示以下错误消息:

***************************
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.

在我的 DaoImpl 文件中,我有:

@Repository 
public class xxDaoImpl implements xxDao {
@Autowired
private SessionFactory session;

这是我的 POM.xml 文件的样子:

<?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>

有人知道我如何解决这个问题吗?请让我知道,谢谢。

最佳答案

所以我找到了适合我的解决方案。如果您正在使用配置 .xml 文件,Mathias 可能是正确的。但是对于那些使用 application.properties 文件的人,您需要将这一行添加到您的配置类或主应用程序类:

@Bean  
public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf){
return hemf.getSessionFactory();
}

完成后,将此行添加到 application.properties 文件中:

spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext

这个解决方案对我有用。以下是我能够处理的其他引用资料:

http://www.ekiras.com/2016/02/how-to-use-configure-session-factory-bean-springboot.html

Spring Boot - Handle to Hibernate SessionFactory

关于hibernate - 无法找到 'xxxDAOImpl required a bean of type ' org.hibernate.SessionFactory 中的字段 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40623073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com