当前位置: 首页 > 知识库问答 >
问题:

类型中构造函数的参数0需要一个类型为'org.hibernate.SessionFactory'的bean,但找不到该bean

林子石
2023-03-14

我有两个项目:

    null
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
oct 27, 2021 10:14:12 AM org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter report
GRAVE: 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in {CLASS} required a bean of type 'org.hibernate.SessionFactory' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'org.hibernate.SessionFactory' in your configuration.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <bean name="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="hibernateProperties">
            <bean class="org.foo.bar.PropiedadesEntorno">
                <constructor-arg>
                    <ref bean="entorno" />
                </constructor-arg>
            </bean>
        </property>
        <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
    </bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:security="http://www.springframework.org/schema/security"
        xsi:schemaLocation="
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.2.xsd 
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    <bean name="entorno" class="java.lang.Integer"> 
        <constructor-arg type="int" value="1" />
    </bean>
    <context:annotation-config />
    <context:component-scan base-package="org.foo.bar" /> 
    <import resource="classpath*:META-INF/spring/config.xml"/>
</beans>
@Repository
public class ContratoDao extends BaseDao implements IContratoDao {
    
    @Autowired
    public ContratoDao(SessionFactory sessionFactory) {
        super(sessionFactory);
    }

    ...
}

提前感谢您的帮助。

共有1个答案

施飞雨
2023-03-14

您可以从EntityManager获取会话。注入EntityManager

@Autowired
private EntityManager entityManager;

private Session getSession() {
        return entityManager.unwrap(Session.class);
    }

并在ContratoDao中使用getsession()。它可能会帮助你解决这个问题。

 类似资料:
  • 我正在创建一个,其中任何客户端都可以提交请求,这些请求可以是、、、。 但是在创建这个应用程序时,我遇到了以下错误: 我的应用程序的结构是: 我尝试用、、注释,但仍然得到相同的错误。 我甚至从这些答案中尝试了解决方案: (1)构造函数的参数0需要一个类型为'java.lang.String'的bean,但找不到该bean 但我仍然无法解决我的问题。

  • 我想有一个SSO CAS认证,我已经按照Bealdung的教程(https://www.baeldung.com/spring-security-cas-sso第4部分)的说明,但当我作为Spring启动应用程序运行时,我有这个错误 SecurityConfig中构造函数的参数0需要找不到类型为“org.springframework.security.cas.authentication.Cas

  • 运行应用程序后控制台显示的错误粘贴在下面 套餐下有3个等级 bduckapp1application.java<-SpringBoot应用程序 bducktrigger.java<-restcontrol oss.java<-data类 pom.xml 我尝试了各种stackoverflow文章中针对类似错误提到的所有解决方案。建议将这些类移动到与类相同的文件夹中,或者包含具有它属性的包。没有一个

  • ResourceServerConfiguration中构造函数的参数0需要类型为“StratusAuthenticationEntryPoint”的bean,但找不到该bean。 我使用的是spring boot 2.6.6,代码如下: 错误消息:

  • 在此处输入图像描述 在此处输入图像描述 我仍然不知道该怎么办(我在UserRepository上尝试了Repository注释-错误是一样的)。错误消息:`启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2022-03-14 09:04:54.626错误7236---[main]o.s.b.d.LoggingFailureAnalysisR

  • 应用程序启动失败 描述: com.base.model.abstractDAO中得字段会话需要类型为“org.hibernate.sessionFactory”得bean,但找不到该bean. 我添加了应用程序的实现: pom.xml 应用程序.属性 我在stackoverflow上查找了相同的错误代码,但没有一个解决方案起作用,因此将它与我的代码一起再次发布在这里。希望别人能指出我错在哪里。