1 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
您面臨的問題是由于HibernateUtilsConfig.java您提供的配置類引起的。在您的 EmployeeDao 類中,您正在自動(dòng)裝配sessionfactorybean。因此,當(dāng) springboot 嘗試自動(dòng)裝配 bean 時(shí),它會(huì)失敗并出現(xiàn)以下錯(cuò)誤:
Unsatisfied dependency expressed through field 'sessionfactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hibernateUtilsConfig': Unsatisfied dependency expressed through field 'entityManagerFactory'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'getSessionFactoty': Requested bean is currently in creation: Is there an unresolvable circular reference?
因?yàn)閑ntityManagerFactorybean 不可用。
由于您使用的是 spring-boot ,因此您可能無法手動(dòng)配置所有內(nèi)容。您可以通過添加以下依賴項(xiàng)來使用 spring-boot 的默認(rèn)自動(dòng)配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
然后,您可以在 application.properties 或 application.yml 中提供適當(dāng)?shù)逆I,spring-boot 將為您配置所有內(nèi)容。
application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=mysqluser
spring.datasource.password=mysqlpass
spring.datasource.url=jdbc:mysql://localhost:3306myDb?createDatabaseIfNotExist=true
如果您仍想手動(dòng)設(shè)置所有內(nèi)容,請(qǐng)嘗試創(chuàng)建實(shí)體管理器 bean,例如:
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em
= new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setPackagesToScan(new String[] { "com.example.persistence.model" });
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
em.setJpaProperties(additionalProperties());
return em;
}
添加回答
舉報(bào)