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

springboot:Hibernate配置

东博瀚
2023-03-14

我添加了application.properties文件,如下所示:

spring数据源(DataSourceAutoConfiguration&DataSourceProperties)Spring.DATASOURCE.url=jdbc:mysql://localhost:3306/test?usessl=false Spring.DATASOURCE.username=root Spring.DATASOURCE.password=root

Hibernate属性SQL方言使Hibernate为所选数据库生成更好的SQL,spring.jpa.Properties.Hibernate.dialect=org.Hibernate.dialect.mysql5innoddDialect

Hibernate ddl自动(创建、创建-删除、验证、更新)spring.jpa.Hibernate.ddl-auto=创建

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

对于dao层,类:

package com.repository;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Repository;

@Repository
public class DaoClass
{
    @Autowired
    private SessionFactory sessionFactory;

    public SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }

    @Bean
    public void setSessionFactory(SessionFactory sessionFactory)
    {
        this.sessionFactory = sessionFactory;
    }
}

现在运行springboot应用程序时,我面临以下错误:

应用程序启动失败

描述:

Com.Repository.DaoClass中得字段sessionFactory需要类型为“org.hibernate.sessionFactory”得bean,但找不到该bean.

行动:

考虑在您的配置中定义一个“org.hibernate.sessionFactory”类型的bean。

pom.xml

null

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>springboot</groupId>
	<artifactId>firstprogram</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.2.RELEASE</version>
	</parent>
	<name>firstprogram Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>5.3.6.Final</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>			
		</dependency>

	</dependencies>
	<build>
		<finalName>firstprogram</finalName>
	</build>
</project>

null

package com.repository;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Component;

@Component
public class DaoClass
{
    @PersistenceContext
    private EntityManager entityManger;

    public EntityManager getEntityManger()
    {
        return entityManger;
    }

    public void setEntityManger(EntityManager entityManger)
    {
        this.entityManger = entityManger;
    }
}

共有1个答案

杨轶
2023-03-14

spring boot不会自动配置SessionFactory,而是配置EntityManagerFactory,您可以直接使用它,也可以通过以下方式从中获取SessionFactory:

SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);
 类似资料:
  • exVim 的配色由三部分组成: 你自己的Vim配色, exVim 插件的语法高亮和插件的配色. 你可以按照以下步骤来定制你的配色: 安装你的配色 exVim 提供了三种方法安装你的自定义配色 方法1. 在 ex-colorscheme 中安装(推荐) 首选的方法是在 ex-colorschemes 中安装自己的配色, 这种方法仅仅需要你把自己的配色文件放到 vimfiles/bundle/ex-

  • 目录: 在配置项目yml文件中: 问题: null 客户端YML: 有没有人知道我怎样才能在这两种情况下只带一个配置文件?

  • 丰富的过滤器插件的存在是 logstash 威力如此强大的重要因素。名为过滤器,其实提供的不单单是过滤的功能。在本章我们就会重点介绍几个插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!

  • Codec 是 logstash 从 1.3.0 版开始新引入的概念(Codec 来自 Coder/decoder 两个单词的首字母缩写)。 在此之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,这全是因为有了 codec 设置。 所以,这里需要纠正之前的一个概念。Logstash 不只是一个input | filter | outpu